JSON 表示 “JavaScript Object Notation” ,是一门轻量级,独立的,自我描述的,文本格式,用于数据存储和交换的语言。JSON非常方便创建,读和写,比XML更受欢迎。
JSON派生自JavaScript,但是现在被很多语言支持。一个JSON文件,其扩展名为.json
当我们想新建一个资源,或则说是增加一个新的学生信息到一个学生数据库,我们需要发送一个POST请求,payload可能就是JSON格式,所以JSON主要用来在服务器端和客户端的数据交换。
例如:
{
"firstName":"Mei",
"lastName":"Xia",
"age": 18,
"salary": 10000.56
}
从上可以看出,JSON是以key-value键值对的方式存储数据。key键在左侧,value值是右侧,用冒号:
来分离。每一对键值对用逗号,
分离。
一个键key总是一个字符串string ,必须用双引号封闭。一个值value可以是一个字符串string ,一个数字number (小数和不带小数),一个布尔Boolean值( true 和 false),一个对象object ,一个数组array,或为空null
JSON有两种格式:JSON Object and JSON Array,上面的实例是一个JSON Object。下面的实例是JSON Array。
[
{
"name": "MeiMei",
"skills": "java"
},
{
"name": "ShuaiShuai",
"skills": "API"
}
]
一个JSON Object是无序的数据结构,它以花括号 ( ‘{‘
)开始,以花括号(‘}’
)结束。
一个JSON Array是有序的集合,它以中括号( ‘[‘
)开始,以中括号(‘]’
)结束,集合中以逗号,
分离。一个JSON Array可以有多个JSON Object。
例如:
{
"firstName": "MeiMei",
"lastName": "Xia",
"age": 18,
"salary": 10000.56,
"Mob": [
1234567890,
1023456789
],
"Address": [
{
"addressType": "Home",
"city": "Shanghai"
},
{
"addressType": "Office",
"city": "Shanghai"
}
],
"isMarried": false,
"techSkills": {
"programmingLangauge": "Java",
"UIAutomation": "Selenium",
"backendAutomation": "API"
},
"Nationality": "China",
"hobbies": null
}
上面的JSON例子包含了所有可能的value类型。“Mob” 键是一个字符串数组,而“Address”键是JSON Object的JSON Array。“isMarried” 键的值是个布尔值。“techSkills” 键是一个JSON Object。“hobbies”键是一个null值。注意“NULL”不能替代“null”,否则会出错
。
有一些网站可以供参考用来更方便地创建和验证JSON: