JSON, JavaScript Object Notation,是老道(Douglas Crockford)受js的字面量表示法启发而创造的一种数据交换格式。
    JSON 的设计目标是成为一个极简的,轻便的和文本式的 JavaScript 子集。实现互通所需要的共识越少,互通就越容易实现。

    我们开发中常见的JSON,形如下面这样
    {
    “color”: “red”,
    “shape”: “square”,
    “age”: 13
    }

    但实际上JSON 格式不是仅有上面这样的。
    JSON可用格式如下:
    1、纯数字。如 333 是JSON。
    2、双引号包裹的字符串,如“六六六”是JSON。(单引号的‘六六六’不是)
    3、布尔值。单独的true 或者 单独的false 是JSON。
    4、特殊字符null是json。 (注意undefined,NaN,Infinity 不是json)
    5、数组。(注意数组里不能出现undefined,NaN,Infinity)
    6、JSON对象。 (注意: key都必须用双引号)

    image.png image.png
    image.png image.png
    (判定标准,参考这个网站https://jsonlint.com/

    此外 function() {} 不是JSON。

    所以在用JSON.parse(JSON.stringify(obj))的时候,undefined, NaN, Infinity, function 都被忽略。