本文总结自《JSON必知必会》-人民邮电出版社
数据交换格式是一种在不同平台间传递数据的文本格式
除了JSON外,还有XML这种数据交换格式
JSON的全称是JavaScript Object Notation(JavaScript对象表示法),源于JavaScript的一个子集,学习JSON不必学习JavaScript,因为数据交换格式独立于语言
去掉“JavaScript对象表示法”的“JavaScript”,就是“对象表示法”,可以说,我们使用的是一种基于对象表示法的数据交换格式
JSON基于JavaScript对象字面量,单纯指对象字面量及其属性的语法表示,并不涉及JavaScript对象字面量中的函数
这种属性表示方法通过名称-值对来实现
JSON中使用冒号(:)来分隔名称和值
名称始终在左边,值始终在右边
名称,始终需要被双引号包裹。在名称中,可以使用任何有效的字符串,包括空格和特殊字符。但是为了获得最大可移植性,应尽可能避免使用空格和特殊字符
当值是字符串时,必须使用双引号。而在JSON中,还有数字、布尔值、数组、对象、null等其他数据类型,这些都不应该被双引号包裹
多个名称-值对使用逗号来分隔
然后将花括号加在两边使之成为一个对象
{
"brand":"Crocs",
"color":"pink",
"size":9,
"hasLaces":false
}
JSON文件扩展名为.json
比如:C:/animals.json
JSON的MIME类型为application/json
JSON中的数据类型包括:
JSON本身就是一个对象,如果需要在JSON中创建一个对象,那就需要用到嵌套
{
"person":{
"name":"Lindsay Bassett",
"heightInInches":66,
"head":{
"hair":{
"color":"light blond",
"length":"short",
"style":"A-line"
},
"eyes":"green"
}
}
}
JSON中的字符串可以由任何Unicode字符构成
在JSON中,仅允许使用双引号来包裹字符串
转义符号为反斜线\
{
"promo":"Say \"Bob's the best!\" at checkout for free 8oz bag of kibble."
}
JSON中的数字可以是整数、小数、负数或者指数
{
"widgetInventory":289,
"sadSavingAccount":22.59,
"seattleLatitude":-122.332071,
"earthsMass":5.97219e+24
}
JSON中,布尔类型的字面值只能是小写形式的:true
或false
{
"toastWithBreakfast":false,
"breadWithLunch":true
}
JSON中,null必须使用小写形式,表示“没有值”的值
{
"freckleCount":1,
"hairy":false,
"watchColor":null
}
数组始终被方括号([])包裹
数组的值用逗号隔开,JSON中,数组里可以包含任何支持的数据类型
{
"eggCarton":[
"egg",
"egg",
null,
"egg",
"egg"
]
}