Understanding JSON
JSON(JavaScript Object Notation)是一种轻量级的数据交换语法,易于人类理解、易于机器解析。正如其名,JSON基于JavaScript脚本语言;然而,JSON本身是完全语言无关的。
JSON是RESTful web services之间进行数据传输的一种常用表示法。大多数编程语言提供了解析JSON数据的库,很多web框架现在也支持JSON格式的响应数据。由于JSON比XML占用存储空间小,它非常适合网速较低的情况。例如,移动设备通常连接速度较低。
JSON官方的internet media type是application/json,JSON文件一般用.json作为后缀名。
结构(Structure)
JSON格式由两部分定义。
- 名值对(name/value pairs)
- 值的顺序列表(ordered list of values)
值可以是一下任意一种类型,且可以嵌套:
- String(Unicode)
- Number
- Boolean(true or false)
- Array
- Object
- null(empty)
例子
这个对象包含三个域,name是一个string,age是一个number,member是一个boolean。
{
"name": "John",
"age": 35
"member": false
}
Arrays包含一个值的列表,这些值可以是任意类型。这个对象包含两个arrays;indexes包含number类型值,names数组包含string类型值。
{
"indexes": [5, 10, 15, 20],
"names": ["John", "Elizabeth", "Mary"]
}
地址簿的联系卡是一个更复杂的例子。这个例子涉及了多个元素,包括嵌套对象和数组。
{
"firstName": "John",
"lastName": "Smith",
"birthday": "1975-01-31",
"spouse": {
"firstName": "Mary",
"lastName": "Smith"
},
"addresses": [
{
"description": "home",
"street": "123 Peachtree Ln",
"city": "Atlanta",
"state": "GA",
"postalCode": 30305
},
{
"description": "work",
"street": "456 Peachtree St",
"city": "Atlanta",
"state": "GA",
"postalCode": 30305
}
],
"phoneNumbers": [
{
"description": "home",
"number": "404-555-1234"
},
{
"description": "mobile",
"number": "678-555-1234"
}
]
}
英文原为链接: Understanding JSON