JSON.stringify() 和 JSON.parse()

这是两个大家都常用的JSON处理函数,但是它们还有的详细参数,是很少知道的,先摘录一下火狐开发者官网的说明:

JSON.stringify(value[, replacer[, space]])

第二个参数叫replacer,干嘛的呢,用来替换和筛选value中的值的,来个例子:

function replacer(key, value)
 { 
    if (typeof value === "string")
    { return undefined; } 
    return value;
}
  var foo = {foundation: "Mozilla", model:  "box", week: 45, 
  transport:"car", month: 7};
  var jsonString = JSON.stringify(foo, replacer);

这段程序呢,就可以把非字符串部分转化成JSON,
space就是加空格的,不解释了,还有一个对象的toJSON函数,可以定义更具体的行为。

parse也有类似的行为:

JSON.parse(text[, reviver])

reviver
可以对每一个键值对进行改变,类似map:

var obj=JSON.parse('{"1": 1, "2": 2, "3": 3}', function(k, v) 
    {if (k === '') { return v;}    
        return v*2;
    });

注意第一句,if (k === '') { return v;} 这句是终止条件,因为reviver最后会被一个空字符串调用,因此直接返回v,其他操作会出现各种问题!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容