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
具有以下这些形式:
对象(object
)一个无序的"名称/值"
的集合。一个对象以"{"
(左括号)开始,以"}"
(右括号)结束。每个"名称"
与"值"
之间用":"
(冒号)分隔。而"名称/值"
之间使用","
(逗号)分隔。
数组(array
)是值(value
)的有序集合。一个数组以"["
(左中括号)开始,以"]"
(右中括号)结束。值之间使用","
(逗号)分隔。
值(value
)可以是双引号括起来的字符串(string
)、数值(number
)、true
、false
、 null
、对象(object
)或者数组(array
)。这些结构可以嵌套。
字符串(string
)是由双引号包围的任意数量的Unicode
字符的集合,使用反斜线转义。一个字符(character
)即一个单独的字符串(character string
)。这里的字符串(string
)与C
或者Java
的字符串定义非常相似。
数值(number
)也与C
或者Java
的数值定义非常相似。除去未曾使用的八进制与十六进制格式。除去一些编码细节。
可以在任意元素之间插入空格。除了一些编码的细节,以上完整的描述了该语音。