A. JSON:一种轻量级的数据交换格式;
B. 格式:名称/值对
如:“firstName”:“Huang” 等价于 firstName=“Huang”
C. JSON值可以是:
(1)数字*(整数或浮点数)
(2)字符串(在双引号中)
(3)逻辑值(true或false)
(4)数组(在方括号中)
(5)对象(在花括号中)
(6)Null
D. 基础结构:
(1)对象:用“{}”,数据结构为:{key:value,key:value,...}
其中,key为对象的属性,vlaue为对应的属性值;属性值可以是数字、字符串、数组、对象;
(2)数组:用“[]”,数据结构为:[“java”,“javascript”,“vb”,...]
取值方式和所有语言中一样,使用索引获取,字段值可以是数字、字符串、数组、对象。
E.具体形式
1、对象是一个无序的“‘名称/值’对”集合。
(1)一个对象以“{”(左括号)开始,“}”(右括号)结束。
(2)每个“名称”后跟一个“:”(冒号);
(3)“‘名称/值’ 对”之间使用“,”(逗号)分隔。(如图所示,图中表示数据的方式是类似非确定性自动机的形式,没学过编译原理的人,可能理解起来困难点,实际上也是正则表达式的形式。下同)
例子:表示人的一个对象:
{
“姓名”:“张三”
“年龄”:24
}
2、数组是值(value)的有序集合。
(1)一个数组以“[”(左中括号)开始,“]”(右中括号)结束。
(2)值之间使用“,”(逗号)分隔。
例子:一组学生
{
“学生”:[
{“姓名”:“小明”,“年龄”:23},
{“姓名”:“小东”,“年龄”:24}
]
}
说明:此Json对象包括了一个学生数组,而学生数组中的值又是两个Json对象。
3、值(value)可以是双引号括起来的字符串(string)、数值(number)、true、false、 null、对象(object)或者数组(array)。这些结构可以嵌套。
4、字符串(string)是由双引号包围的任意数量Unicode字符的集合,使用反斜线转义。一个字符(character)即一个单独的字符串(character string)。 字符串(string)与C或者Java的字符串非常相似。
5、数值(number)也与C或者Java的数值非常相似。除去未曾使用的八进制与十六进制格式。除去一些编码细节。