美文网首页
JSON.stringify() 和 JSON.parse()

JSON.stringify() 和 JSON.parse()

作者: 火星X王子 | 来源:发表于2016-04-01 15:23 被阅读60次

    这是两个大家都常用的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,其他操作会出现各种问题!

    相关文章

      网友评论

          本文标题:JSON.stringify() 和 JSON.parse()

          本文链接:https://www.haomeiwen.com/subject/acdylttx.html