什么是Json
- JSON指的是JavaScript对象表示法(JavaScript Object Notation)
- JSON是轻量级的文本数据交换格式
- JSON独立于语言
- JSON具有自我描述性,更易理解
- 文件名扩展是 . json
JSON使用范围
- 用于编写基于JavaScript应用程序,包括浏览器扩展和网站
- JSON格式可以用于通过网络连接序列化和传输结构化数据
- Web服务和APIs可以使用JSON格式提供公用数据
- 还可以用于现代编程语言中
JSON特点
- JSON容易阅读和编写
- 它是一种轻量级的基于文本的交换格式
- 和语言无关
JSON语法规则
JSON使用 JavaScript语法来描述数据对象,JSON语法是JavaScript语法的子集,包括以下内容:
- 数据使用名/值对表示
- 使用大括号保存对象,每个名称后面跟着一个‘:’(冒号),名/值对使用,(逗号)分割。
- 使用方括号保存数组,数组值使用,(逗号)分割。
- 花括号保存对象。
JSON的两种表示结构
JSON的结构有2种:
- 对象结构
- 数组结构
对象结构
对象结构是使用大括号“{}”括起来的,大括号内是由0个或多个用英文逗号分隔的“关键字:值”对(key:value)构成的。
语法
var jsonObj =
{
"键名1":值1,
"键名2":值2,
……
"键名n":值n
}
说明:
jsonObj指的是json对象。对象结构是以“{”开始,到“}”结束。其中“键名”和“值”之间用英文冒号构成对,两个“键名:值”之间用英文逗号分隔。
注意,这里的键名是字符串,但是值可以是数值、字符串、对象、数组或逻辑 true 和 false 。
JSON数组结构
JSON数组结构是用中括号“[]”括起来,中括号内部由0个或多个以英文逗号“,”分隔的值列表组成。
var arr =
[
{
"键名1":值1,
"键名2":值2
},
{
"键名3":值3,
"键名4":值4
},
……
]
说明:
arr指的是json数组。数组结构是以“[”开始,到“]”结束,这一点跟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"
]
}
JSON名称/值对
名称/值对包括字段名称(在双引号中),后面写一个冒号,然后是值:
"FirstName": "John"
等价于这条 JavaScript语句:
FirstName = "John"
JSON的值
JSON的值可以是:
- 数字(整数或浮点数)
- 字符串(在双引号中)
- 逻辑值(true或false)
- 数组(在方括号中)
- 对象(在花括号中)
- null
JSON对象
JSON对象在花括号({})中书写,对象中可以包含多个名称/值对:
{ "firstName":"John" , "lastName":"Doe" }
等价于JavaScript语句
firstName = "John"
lastName = "Doe"
JSON数组
JSON数组在方括号中书写,数组可以包含多个对象:
{
"employees": [
{ "firstName":"John" , "lastName":"Doe" },
{ "firstName":"Anna" , "lastName":"Smith" },
{ "firstName":"Peter" , "lastName":"Jones" }
]
}
在上面的例子中,对象“employees”是包含三个对象的数组。每个对象代表一条关于某人的记录。
JSON布尔值
JSON布尔值可以使 true 或者 false :
{ "flag":true }
JSON null
JSON可以设置null值:
{ "runoob":null }