参考: https://wangdoc.com/javascript/stdlib/json.html
一、JSON格式
JSON对值的类型和格式具有严格规定:1、复合类型的值只能是数组或对象,不能是函数、正则表达式对象、日期对象。2、原始类型的值:字符串、数值(必须为十进制)、布尔值和null,不能使用NaN、Infinity、-Infinity和undefined。3、字符串必须使用双引号表示,不能使用单引号。4、对象的键名必须放在双引号中。5、数组或对象最后一个成员的后面,不能加逗号。
二、静态方法
2.1 JSON.stringify():
用于将一个值转为JSON字符串。对于原始类型的字符串,转换结果会带双引号。如果对象的属性是undefined、函数、XML对象,该属性会被JSON。stringify()过滤。如果数组的成员是undefined、函数、XML对象,则这些值被转为null。正则表达式对象会被转成空对象。并且JSON.stringify()方法会忽略对象的不可遍历的属性。
JSON.stringify()方法可以接受一个数组,作为第二个参数,指定需要转成字符串的属性。该参数只对对象的属性有效,对数组无效。第二个参数还可以是一个函数,用来更改JSON.stringify的返回值。
JSON.stringify还可以接受第三个参数,用于增加返回的JSON字符串的可读性,如果是数字,表示每个属性前面添加的空格,如果是字符串,则该字符串会添加在每行前面。
2.2 JSON.parsse():用于将JSON字符串转换成对应的值。JSON.stringify方法可以接受一个处理函数,作为第二个参数。