JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式。它使得人們很容易的進行閱讀和編寫。同時也方便了機器進行解析和生成。它是基於 JavaScript Programming Language ,Standard ECMA-262 3rd Edition - December 1999 的一個子集。 JSON採用徹底獨立於程序語言的文本格式,可是也使用了類C語言的習慣(包括C, C++, C#, Java, JavaScript, Perl, Python等)。這些特性使JSON成爲理想的數據交換語言。javascript
JSON基於兩種結構:
- 「名稱/值」對的集合(A collection of name/value pairs)。不一樣的編程語言中,它被理解爲對象(object),紀錄(record),結構(struct),字典(dictionary),哈希表(hash table),有鍵列表(keyed list),或者關聯數組 (associative array)。
- 值的有序列表(An ordered list of values)。在大部分語言中,它被實現爲數組(array),矢量(vector),列表(list),序列(sequence)。
這些都是常見的數據結構。目前,絕大部分編程語言都以某種形式支持它們。這使得在各類編程語言之間交換一樣格式的數據成爲可能。
JSON具備如下這些形式:
對象(object) 是一個無序的「‘名稱/值’對」集合。一個對象以「{」(左括號)開始,「}」(右括號)結束。每一個「名稱」後跟一個「:」(冒號);「‘名稱/值’ 對」之間使用「,」(逗號)分隔。
數組(array) 是值(value)的有序集合。一個數組以「[」(左中括號)開始,「]」(右中括號)結束。值之間使用「,」(逗號)分隔。
值(value) 能夠是雙引號括起來的字符串(string)、數值(number)、true
、false
、 null
、對象(object)或者數組(array)。這些結構能夠嵌套。
字符串(string) 是由雙引號包圍的任意數量Unicode字符的集合,使用反斜線轉義。一個字符(character)即一個單獨的字符串(character string)。
JSON的字符串(
string)與C或者Java的字符串很是類似。
數值(number) 也與C或者Java的數值很是類似。只是JSON的數值沒有使用八進制與十六進制格式。
同時,能夠在任意標記之間添加空白。