JSON支持三种类型的值:
- 简单值 :字符串、数值、布尔值和null都能在JSON中存在,但underfined不行,JSON没有变量,不存在undefined
- 对象: JSON的第一种复杂类型,和js里的对象一样以键值对的形式,支持复杂类型和简单类型为其属性
- 数组:另一种复杂类型,数组中的每一个值都可以是复杂类型或简单类型
下面会仔细介绍每种类型
简单值
简单值的JSON可以仅是一个数值
5 //一个数值简单值的JSON
"hello world!" // 这个字符串也是一个简单值
JSON里的字符串需要用""
(双引号)来引起来,因为JSON没有变量,所以所有复杂类型里的变量名会被当作一个字符串,这样的话在JSON中就需要用""
布尔值和null本身也是一个有效的JSON值!!
实践中更多是在使用JSON表示复杂类型的数据结构,而简单值会包含在其中,不会仅仅只有简单值
对象
在JSON中,对象的属性名需要用双引号(""
)引起来
{
"name" = "zhangmou",
"age"= 23
}
在JSON中不存在变量,所有没有变量声明,当然也没有;
(因为这不是js语法,不需要分号)
当然也支持复杂类型:
{
"name" = 'zhangmou",
"age" = 23,
"school": {
"name": "college"
"location": "hubei wuhan, cn"
对象里的对象拥有同样的属性名不会报错 虽然都有”name”但属于不同的对象所以允许同时存在,如果属于同一对象则会报错
不能漏掉""
!!!
数组
JSONG的数值是以js中的数组字面量的形式表现
可以装载复杂类型
[
{
"name": "fengmou",
"type": "未定义",
"age": 22,
"color": ["white", "black"}
},
{
"name": "shanguai",
"type":"monster",
"age":105,
"color":["greebnlue"]
},
{
"name":"baixiong",
"type":"Polar bear",
"age":,
"color":["white"]
},
{
"name":"xiaoxiong",
"type":"Brown bear",
"age":5,
"color":["Brown"]
},
]