什么是JSON

JavaScript Object Notation (JSON) 是一种数据交换格式。

认识JSON

JSON长得和JS数据差不多,但JSON是字符串类型。比如:

  1. // JS 对象
  2. var obj = { id: 1, name: 'zs' };
  3. // JSON 字符串
  4. var json = '{ "id": 1, "name": "zs" }';

很少直接在JS代码中写JSON。一般都是在JSON文件(xxx.json)中写JSON。 后续的ajax课程,大部分接口响应的结果都是JSON字符串格式。

编写JSON

  • 不允许出现 undefined
  • 不允许写注释
  • 不能有函数
  • 无论是属性名还是字符串类型的值,都必须加引号。(单引号都不行)
  • JSON中可以包括的数据类型
    • 数字
    • 字符串(必须加双引号)
    • 布尔
    • null
    • 数组
    • 对象
  • 一个完整的JSON字符串,前后的括号必须对应,且不能有其他内容。

    JSON和JS数据转换

    JSON ——> JS

  • let JS数据 = JSON.parse(JSON字符串);

  • 这个过程叫做 反序列化

JS ——> JSON

  • let JSON字符串 = JSON.stringify(JS数据);
  • 这个过程叫做 序列化

请思考下面的转换:

  1. // ------------------------- 转成JSON格式 --------------------
  2. var obj = {
  3. // 这里有一个注释
  4. name: 'zs',
  5. age: undefined,
  6. sayHi: function () {
  7. console.log('Hi~');
  8. }
  9. };
  10. console.log( JSON.stringify(obj) );
  11. // 思考,答案是怎样的呢?
  12. // ---------------------- JSON转成JS数据 ---------------------
  13. var json = 'true123["apple", "orange"]';
  14. var aa = JSON.parse(json); // 报错,因为把三部分JSON格式的字符串放到一起了