Mastering JSON ( JavaScript Object Notation )
数据类型和Json格式
数据类型,从结构上看,所有的数据最终都可以分成三种类型:
第一种类型是scalar(标量),也就是一个单独的string(字符串)或数字(numbers),比如“北京”这个单独的词。
第二种类型是sequence(序列),也就是若干个相关的数据按照一定顺序并列在一起,又叫做array(数组)或List(列表),比如“北京,东京”。
第三种类型是mapping(映射),也就是一个名/值对(Name/value),即数据有一个名称,还有一个与之相对应的值,这又称作hash(散列)或dictionary(字典),比如“首都:北京”。
Json格式规则:(Douglas Crockford提出的)
1) 并列的数据之间用逗号(“,”)分隔。
2) 映射用冒号(“:”)表示。
3) 并列数据的集合(数组)用方括号("[]")表示。
4) 映射的集合(对象)用大括号(“{}”)表示。
“北京市的面积为16800平方公里,常住人口1600万人。上海市的面积为6400平方公里,常住人口1800万。”
写成json格式就是这样:
[
{
"城市": "北京",
"面积": 16800,
"人口": 1600
},
{
"城市": "上海",
"面积": 6400,
"人口": 1800
}
]
如果事先知道数据的结构,上面的写法还可以进一步简化:
[
[
"北京",
16800,
1600
],
[
"上海",
6400,
1800
]
]
验证JSON数据格式是否正确,http://www.jsonlint.com/ 这个在线编辑器可以验证
访问数据元素
var myObject = { 'color' : 'blue' };
myObject.color;或者myObject[“color”]两种方式,
var employees = { "accounting" : [ // accounting is an array in employees.访问数据元素:
{ "firstName" : "John", // First element
"lastName" : "Doe",
"age" : 23 },
{ "firstName" : "Mary", // Second Element
"lastName" : "Smith",
"age" : 32 }
], // End "accounting" array.
"sales" : [ // Sales is another array in employees.
{ "firstName" : "Sally", // First Element
"lastName" : "Green",
"age" : 27 },
{ "firstName" : "Jim", // Second Element
"lastName" : "Galley",
"age" : 41 }
] // End "sales" Array.
} // End Employees
employees.sales[0].firstName,代表sales数组中第一个firstName元素Sally
employees.sales[1].firstName,代表sales数组中第二个firstName元素Jim