1.json简介

正如我们在java中,使用实体对象来存储一个实体数据一样,在javaScript中,我们也需要这样一种对象,来存储一个实体数据。而且,此种对象将来也可以作为前端与服务器端进行数据交互的载体。
在json出现之前,大家都用 XML 传递数据。XML 是一种纯文本格式,所以适合在网络上交换数据,但是 XML 格式比较复杂,解析困难。终于道格拉斯•克罗克福特(Douglas Crockford)发明了JSON 这种超轻量级的数据交换格式。
JSON(JavaScript Object Notation)

  1. 是一种轻量级的数据交换格式。
  2. 易于人阅读和编写,同时也易于机器解析和生成。
  3. JSON采用完全独立于语言的文本格式。

上面这些特性使JSON成为理想的数据交换语言。

2.json数据格式语法

  1. json对象形式:对象中包含若干属性,属性以 ”键值对“ 的形式书写。

    1. let user = {
    2. userId:1,
    3. userName:'张三',
    4. userSex:'男'
    5. }
    6. console.log(user.userId);
    7. console.log(user.userName);
    8. console.log(user.userSex);
  2. json数组形式:一个json数组中包含多个json对象。

    1. let userArr = [
    2. {
    3. userId:1,
    4. userName:'张三',
    5. userSex:'男'
    6. },{
    7. userId:2,
    8. userName:'李四',
    9. userSex:'女'
    10. },{
    11. userId:3,
    12. userName:'王五',
    13. userSex:'男'
    14. }
    15. ]
    16. //获取json数组中某一个json对象
    17. let user = userArr[0];
    18. console.log(user.userId);
    19. console.log(user.userName);
    20. console.log(user.userSex);
    21. //遍历json数组
    22. for(let i=0;i<userArr.length;i++){
    23. console.log(userArr[i].userId,userArr[i].userName,userArr[i].userSex);
    24. }

    3.json与字符串之间的转换

    javaScript中内置了一个JSON对象,可以用来进行json与字符串之间的转换。

  3. json转换成字符串:使用JSON.stringify()

    1. let user = {
    2. userId:1,
    3. userName:'张三',
    4. userSex:'男'
    5. }
    6. let str = JSON.stringify(user);
    7. console.log(str); //{"userId":1,"userName":"张三","userSex":"男"}
    1. let userArr = [
    2. {
    3. userId:1,
    4. userName:'张三',
    5. userSex:'男'
    6. },{
    7. userId:2,
    8. userName:'李四',
    9. userSex:'女'
    10. },{
    11. userId:3,
    12. userName:'王五',
    13. userSex:'男'
    14. }
    15. ]
    16. let str = JSON.stringify(userArr);
    17. console.log(str); //[{"userId":1,"userName":"张三","userSex":"男"}, ... ]
  4. 字符串转换成json:使用JSON.parse()

    1. let user = {
    2. userId:1,
    3. userName:'张三',
    4. userSex:'男'
    5. }
    6. let str = JSON.stringify(user);
    7. let new_user = JSON.parse(str);
    8. console.log(new_user);

4、课后练习题


1、【填空题】 JSON格式语法要求:JSON 数据的书写格式是key:value的格式,JSON 对象在( ) 中书写,JSON 数组在( )中书写,所有key的数据类型是( )
2、【简答题】与xml格式数据相比,JSON格式数据有那些优势?
3、【编程题】已知如下JSON格式数据,请JavaScript代码写出遍历数据的代码

  1. let depts = [
  2. {
  3. deptno:10,
  4. dname:'研发部',
  5. loc:'沈阳市'
  6. },{
  7. deptno:20,
  8. dname:'销售部',
  9. loc:'广州市'
  10. },{
  11. deptno:30,
  12. dname:'财务部',
  13. loc:'成都市'
  14. }
  15. ]

4、【编程题】已知JavaScript对象user,请编写JavaScript代码,实现user对象转换为json格式的字符串

  1. let dept = {
  2. deptno:40,
  3. dname:'总装车间',
  4. userSex:'深圳市'
  5. }

5、已知字符串str= ‘[{“empno”:7369,”ename”:”SMITH”,”JOB”:”BOOS”}, … ]’,请编写JavaScript代码,实现将字符串转换为对象