JSON - 图1

JSON.stringify()

将对象序列化为 JSON 字符串
📌注意:

  • JSON.stringify在遇到undefinedfunctionsymbol时会自动将其忽略

    1. JSON.stringify(undefined) // undefined
    2. JSON.stringify(function() {}) // undefined
    3. JSON.stringify(Symbol()) // undefined
  • 在数组中则会返回null(以保证单元位置不变)

    1. JSON.stringify([1,undefined, function() {}, Symbol(), 'str', true])
    2. // "[1,null,null,null,"str",true]"

JSON.parse()

将 JSON 数据解析为 js 对象

利用JSON.parse(JSON.stringify(obj))完成深拷贝

  1. // 源对象的属性 b 指向的是一个对象,属于引用类型
  2. const source = { a: 0 , b: { c: 0}};
  3. const target = JSON.parse(JSON.stringify(source));
  4. // 深拷贝后,修改源对象的属性 b, 目标对象不受影响
  5. source.a = 4;
  6. source.b.c = 4;
  7. console.log(JSON.stringify(target)); // { a: 0, b: { c: 0}}