JSON支持三种类型的值:

  1. 简单值 :字符串、数值、布尔值和null都能在JSON中存在,但underfined不行,JSON没有变量,不存在undefined
  2. 对象: JSON的第一种复杂类型,和js里的对象一样以键值对的形式,支持复杂类型和简单类型为其属性
  3. 数组:另一种复杂类型,数组中的每一个值都可以时复杂类型或简单类型

下面会仔细介绍每种类型


简单值

简单值的JSON可以仅是一个数值

  1. 5 //一个数值简单值的JSON
  2. "hello world!" // 这个字符串也是一个简单值

JSON里的字符串需要用""(双引号)来引起来,因为JSON没有变量,所以所有复杂类型里的变量名会被当作一 个字符串,这样的话在JSON中就需要用""

布尔值和null本身也是一个有效的JSON值!!
实践中更多是在使用JSON表示复杂类型的数据结构,而简单值会包含在其中,不会仅仅只有简单值


对象

在JSON中,对象的属性名需要用双引号""引起来

  1. {
  2. "name" = "yuanmou",
  3. "age"= 23
  4. }
  1. JSON中不存在变量,所有没有变量声明,当然也没有`;`(因为这不是js语法,不需要分号)

当然也支持复杂类型

  1. {
  2. "name" = "yuanmou",
  3. "age"= 23,
  4. "school":{
  5. "name":"college",
  6. "location":"hubei wuhan,ZH"
  7. }
  8. }

对象里的对象拥有同样的属性名不会报错 虽然都有”name”但属于不同的对象所以允许同时存在,如果属于同一对象则会报错

不能漏掉""!!!


数组

JSONG的数值是以js中的数组字面量的形式表现

可以装载复杂类型

  1. [
  2. {
  3. "name":"pangda",
  4. "type":"panda",
  5. "age":3,
  6. "color":["white","black"]
  7. },
  8. {
  9. "name":"shanguai",
  10. "type":"monster",
  11. "age":105,
  12. "color":["greebnlue"]
  13. },
  14. {
  15. "name":"baixiong",
  16. "type":"Polar bear",
  17. "age":,
  18. "color":["white"]
  19. },
  20. {
  21. "name":"xiaoxiong",
  22. "type":"Brown bear",
  23. "age":5,
  24. "color":["Brown"]
  25. },
  26. ]