JSON使用 JavaScript语法来描述数据对象,JSON语法是JavaScript语法的子集,包括以下内容:
JSON的结构有2种:
对象结构是使用大括号“{}”括起来的,大括号内是由0个或多个用英文逗号分隔的“关键字:值”对(key:value)构成的。
var jsonObj =
{
"键名1":值1,
"键名2":值2,
……
"键名n":值n
}
jsonObj指的是json对象。对象结构是以“{”开始,到“}”结束。其中“键名”和“值”之间用英文冒号构成对,两个“键名:值”之间用英文逗号分隔。
注意,这里的键名是字符串,但是值可以是数值、字符串、对象、数组或逻辑 true 和 false 。
JSON数组结构是用中括号“[]”括起来,中括号内部由0个或多个以英文逗号“,”分隔的值列表组成。
var arr =
[
{
"键名1":值1,
"键名2":值2
},
{
"键名3":值3,
"键名4":值4
},
……
]
arr指的是json数组。数组结构是以“[”开始,到“]”结束,这一点跟JSON对象不同。在JSON数组中,每一对“{}”相当于一个JSON对象。
这是一个电话本的例子
{
"FirstName": "John",
"LastName": "Doe",
"Age": 43,
"Address": {
"Street": "Downing Street 10",
"City": "London",
"Country": "Great Britain"
},
"Phone numbers": [
"+44 1234567",
"+44 2345678"
]
}
名称/值对包括字段名称(在双引号中),后面写一个冒号,然后是值:
"FirstName": "John"
等价于这条 JavaScript语句:
FirstName = "John"
JSON的值可以是:
JSON对象在花括号({})中书写,对象中可以包含多个名称/值对:
{ "firstName":"John" , "lastName":"Doe" }
等价于JavaScript语句
firstName = "John"
lastName = "Doe"
JSON数组在方括号中书写,数组可以包含多个对象:
{
"employees": [
{ "firstName":"John" , "lastName":"Doe" },
{ "firstName":"Anna" , "lastName":"Smith" },
{ "firstName":"Peter" , "lastName":"Jones" }
]
}
在上面的例子中,对象“employees”是包含三个对象的数组。每个对象代表一条关于某人的记录。
JSON布尔值可以使 true 或者 false :
{ "flag":true }
JSON可以设置null值:
{ "runoob":null }