JSON概述
JSON(JavaScript Object Notation,JS对象标记)是一种轻量级的数据交换格式。它是基于JavaScript的一个子集,使用了C、C++、C#、Java、JavaScript、Perl、Python等其他语言的约定,采用完全独立于编程语言的文本格式来存储和表示数据。这些特性使JSON成为理想的数据交互语言,它易于阅读和编写,同时也易于机器解析和生成。
与XML一样,JSON也是基于纯文本的数据格式。初学者可以使用JSON传输一个简单的String、Number、Boolean,也可以传输一个数组或者一个复杂的Object对象。
JSON有如下两种数据结构:
1. 对象结构
对象结构以“{”开始,以“}”结束。中间部分由0个或多个以英文“,”分隔的key:value对构成(注意key和value之间以英文“:”分隔),其存储形式如图1所示。
图1 存储对象
对象结构的语法结构代码如下:
{
key1:value1,
key2:value2,
...
}
其中关键字(key)必须为String类型,值(value)可以是String、Number、Object、Array等数据类型。例如,一个address对象包含城市、街道、邮编等信息,使用JSON的表示形式如下:
{"city":"Beijing","street":"Xisanqi","postcode":100096}
2. 数组结构
数组结构以“[”开始,以“]”结束。中间部分由0个或多个以英文“,”分隔的值的列表组成,其存储形式如图2所示。
图2 存储数组
数组结构的语法结构代码如下:
[
value1,
value2,
...
]
例如,一个数组包含了String、Number、Boolean、null类型数据,使用JSON的表示形式如下:
["abc",12345,false,null]
上述两种(对象、数组)数据结构也可以分别组合构成更为复杂的数据结构。例如:一个person对象包含name、hobby和address对象,其代码表现形式如下:
{
"name": "zhangsan"
"hobby":["篮球","羽毛球","游泳"]
"address":{
"city":"Beijing"
"street":"Xisanqi"
"postcode":100096
}
}
需要注意的是,如果使用JSON存储单个数据(如“abc”),一定要使用数组的形式,不要使用Object形式,因为Object形式必须是“名称:值”的形式。