ES5提供一个全局的JSON对象,用来序列化(JSON.stringify)和反序列化(JSON.parse)对象为JSON格式。
JSON.parse(text [,reviver])
JSON.parse接受文本(JSON格式)并转换成一个ECMAScript值。该可选的reviver参数是有带有key和value两个参数的函数,其作用于结果——让过滤和转换返回值成为可能。
>> var result = JSON.parse('{"a": 1,"b": "2"}');
Object
result.b
"2"
如果我们想确保解析的值是个整数,我们可以使用reviver方法。
var result = JSON.parse('{"a": 1,"b": "2"}',function(key,value){
if (typeof value == 'string'){
return parseInt(value);
}else {
return value;
}
})
result.b
2
JSON.stringify(value [,replacer [,space]])
JSON.stringify允许作者接受一个ECMAScript值然后转换成JSON格式的字符串。 在其最简单的形式中,JSON.stringify接受一个值返回一个字符串
>>> var mike = JSON.stringify({mike: "taylor"})
undefined
mike
'{"mike": "taylor"}'
typeof mike
"string"
如果我们需要改变值字符串化的方式,或是对我们选择的提供过滤,我们可以将其传给replacer函数。例如,我们想过滤出即将被字符串化的对象中值为13的属性:
var nums = {
"first": 7,"second": 14,"third": 13
}
var luckyNums = JSON.stringify(nums,value){
if (value == 13) {
return undefined;
} else {
return value;
}
});
luckyNums
'{"first": 7,"second": 14}'
如果replacer方法返回undefined,则键值对就不会包含在最终的JSON中
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|