JSON介绍

  1. JavaScript Object Notation(JavaScript对象表示法)
  2. JSON是轻量级的文本数据交换格式
  3. JSON独立于语言,具有自我描述性,更加容易理解

与XMl的不同

  1. 没有结束标签
  2. 更短
  3. 读写速度更快
  4. 能够使用内建的 JavaScript eval() 方法进行解析
  5. 使用数组
  6. 不使用保留字

JSON数据格式

1、整体结构

  1. String json1 = {"name" : "Jack","sex" : "男"}
  2. String json2 = [{"name" : "Jack","sex" : "男"},{"name" : "Vincent","sex": "男"}]

2、JSON对象———左花括号({ )开头,右花括号(})结尾,一个键值对为一个属性

Json对象结构:{key1:value1,key2:value2…}

  1. a)、key的数据类型:字符串
  2. b)、value的数据类型:字符串、数值、nulljson数组[]、json对象{}

3、JSON数组———类似数组或序列

  1. JSON数组结构:[value1value2......]
  2. a)、value的数据类型:字符串、数值、nulljson数组[]、json对象{}

语法

  1. {
  2. "sites":[
  3. {"name":"渡课网","url":"www.dodoke.com"},
  4. {"name":"百度网","url":"www.baidu.com"},
  5. {"name":"网易","url":"www.163.com"}
  6. ]
  7. }

语法规则

  1. 数据有键(key)值(value)对描述,由逗号分隔
  2. 大括号代表一个完整的对象,拥有多个键值对
  3. 中括号保存数组,多个对象之间使用逗号分隔
  4. 语法规则:

    1. 1)、数据在名称/值中,为一个键值对,表示的是对象的属性
    2. 2)、除了最后一个属性或对象,每个属性,每个对象都必须用逗号(,)分隔
    3. 3)、花括号({})保存对象,一对花括号表示一个对象
    4. 4)、方括号([])保存数组,一对方括号表示一个数组

员工信息表案例

  1. [
  2. {
  3. "empno":7369,
  4. "ename":"李宁",
  5. "job":"软件工程师",
  6. "hiredate":"2017-05-12",
  7. "salary":13000,
  8. "dname":"研发部"
  9. },
  10. {
  11. "empno":7499,
  12. "ename":"王乐",
  13. "job":"客户经理",
  14. "hiredate":"2018-04-12",
  15. "salary":10000,
  16. "dname":"市场部",
  17. "customers":[
  18. {
  19. "cname":"李东"
  20. },{
  21. "cname":"刘楠"
  22. }
  23. ]}
  24. ];

image.png

拓展部分

  1. JSON是浏览器内置对象,JavaScript支持两种方法解析
  2. ie8之前对json不是很好的支持

JSON与字符串相互转换

转换关系

  1. 服务端:Java对象(包括集合) JSON字符串
  2. 客户端:JSON字符串 Java对象(包括集合) or JSON字符串 JS对象

注意:{”name”:”Vincent”}该语句表示的是JSON字符串,而{name:”Vincent”}表示的是JSON对象。前者无法直接输出。

  1. JSON,parse() 方法将字符串转换成JSON对象

    1. <script type="text/javascript">
    2. var str = "{\"class_name\":\"五年级四班\"}";
    3. var json = JSON.parse(str);
    4. console.log(str);
    5. console.log(json);
    6. document.write("班级:"+json.class_name);
    7. </script>

    image.png
    注意:字符串中的json格式千万不能写错,var str = “{}” var str = {};

  2. JSON.stringify() 方法将JSON对象转换成字符串

    1. var json1 = {"class_name":"五年级四班"};
    2. var str1 = JSON.stringify(json1);
    3. console.log(json1);
    4. console.log(str1);

    image.png

初始化json对象的方式

  1. var json = {};
  2. json.class_name = "五年级三班";
  3. json.floor = "求学楼";
  4. json.teacher = "王老师";
  5. console.log(json);

image.png

JSON对象语法规范:

image.png

JSON字符串语法规范

image.png
image.png