JSON.stringify()
1.简介
序列化原始值、对象或数组
2.概要
JSON.stringify(o[, filter][, indent])
3.参数
o,要转换成JSON字符串的原始值、对象或数组
filter,可选参数,一个数组或函数
indent,可选参数,一个数值或一个字符串
4.返回
JSON格式的字符串,代表o的值,同时通过了filter的过滤,以及根据indent进行了格式化
5.描述
①当对象o自身带有toJSON()方法时,JSON.stringify()会调用o的toJSON()方法,并使用该方法的返回值而不是该对象本身进行字符串化;
②如果filter存在且是一个函数,那么该函数的返回值将会作为JSON.stringify()方法的返回值。并且该函数接收两个参数,第一个参数是一个空字符串,第二个参数就是对象o。这里,大家也可以参考Douglas Crockford为 ES3 环境使用JSON写的json2:https://github.com/douglascrockford/JSON-js/blob/master/json2.js#L427。看看JSON.stringify和str的实现应该就明白我这里所说的这两个参数的具体含义了;
③如果filter存在且是一个字符串数组(如果数组中包含数字,数字会自动转化为字符串),那么对象o的某些属性名如果不在这个数组中,则序列化时会将这些属性省略,且返回的字符串中属性的顺序会与该数组中属性的顺序一致;
④JSON.stringify()返回的通常是不带任何空格或换行符的字符串。如果想输出可读性更好的字符串,需要指定第三个参数。如果指定的第三个参数是介于1~10之间的值,则JSON.stringify()会在每一“层级”的输出插入换行符和指定个数的空格。如果指定的第三个参数是非空字符串,则JSON.stringify()会插入换行符和该字符串(只取前十个字符)来缩进层级;
1.简介
解析JSON格式的字符串
2.概要
JSON.parse(s[, reviver])
3.参数
s,要解析的字符串
reviver,可选参数,用来转换解析值的可选函数
4.返回
一个对象、数组或原始值。该返回值是从s中解析的(还有可能被reviver修改过);