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