JSON 格式介紹


轉自:http://www.json.org/json-zh.html

JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式。 易於人閱讀和編寫。同時也易於機器解析和生成。 它基於JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一個子集。 JSON采用完全獨立於語言的文本格式,但是也使用了類似於C語言家族的習慣(包括C, C++, C#, Java, JavaScript, Perl, Python等)。 這些特性使JSON成為理想的數據交換語言

JSON建構於兩種結構

  • “名稱/值”對的集合(A collection of name/value pairs)。不同的語言中,它被理解為對象(object),紀錄(record),結構(struct),字典(dictionary),哈希表(hash table),有鍵列表(keyed list),或者關聯數組 (associative array)。
  • 值的有序列表(An ordered list of values)。在大部分語言中,它被理解為數組(array)。

這些都是常見的數據結構。事實上大部分現代計算機語言都以某種形式支持它們。這使得一種數據格式在同樣基於這些結構的編程語言之間交換成為可能。

JSON具有以下這些形式:

對象是一個無序的“‘名稱/值’對”集合。一個對象以“{”(左括號)開始,“}”(右括號)結束。每個“名稱”后跟一個“:”(冒號);“‘名稱/值’ 對”之間使用“,”(逗號)分隔。

數組是值(value)的有序集合。一個數組以“[”(左中括號)開始,“]”(右中括號)結束。值之間使用“,”(逗號)分隔。

值(value)可以是雙引號括起來的字符串(string)、數值(number)、truefalsenull、對象(object)或者數組(array)。這些結構可以嵌套。

字符串(string是由雙引號包圍的任意數量Unicode字符的集合,使用反斜線轉義。一個字符(character)即一個單獨的字符串(character string)。

字符串(string)與C或者Java的字符串非常相似。

數值(number也與C或者Java的數值非常相似。除去未曾使用的八進制與十六進制格式。除去一些編碼細節。

空白可以加入到任何符號之間。 以上描述了完整的語言。

----------------

1) JSON格式表示的string:

字符串(string)是由雙引號包圍的任意數量Unicode字符的集合,使用反斜線轉義.

因為string 要使用 “” 來包圍unicode 字符,所以json表示 ” 需要使用轉義字符\來表示 \" , 而轉義字符 \ ,它自身需要使用 \\ 來表示。 其它的控制字符也使用轉義字符來表示。

2) JSON可以表示4種原始類型(字符串、數值、布爾和Null)和兩種結構化類型(對象和數組)。表示字符串時需要用 “” 包圍。

3)JSON 只是javascript的子集的含義是說:比如JSON能表示對象,注意這里的對象在上面給出了語法定義,它並不是javascript中所有的對象,只是他的一個子集。比如JSON可以表示:var obj = {}; obj.name = 'xxx'; obj.age = 20; 這樣的javascript對象,但是他不能表示如下的形式的javascript對象:

var obj2 = {}; obj2.name='xxx'; obj2.login = function(){// ... ....}; 。

4)JSON對象 和 字符串之間的相互轉換,使用 JSON.stringify()和JSON.parse() 或者使用jquery中的函數 $.parseJSON(),不要使用 eval(), 因為eval()是針對所有javascript的,而JSON只是他的一個子集。而且eval()存在安全問題。

5) 區別 JSON對象 和 它的字符串

    var obj = {name:"xxx", age:20}; 這是一個 JSON 對象;

    var obj2 = '{"name":"xxx", "age":20}'; 這是上面那個 JSON 對象的字符串;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM