加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ES5中的JSON对象

发布时间:2020-12-16 20:01:10 所属栏目:百科 来源:网络整理
导读:ES5提供一个全局的JSON对象,用来序列化(JSON.stringify)和反序列化(JSON.parse)对象为JSON格式。 JSON.parse(text [,reviver]) JSON.parse接受文本(JSON格式)并转换成一个ECMAScript值。该可选的reviver参数是有带有key和value两个参数的函数,其作用于结果

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中

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读