JavaScript中的JSON

序列化

stringify()

用于把js对象序列化为JSON字符串

var person={
name:"xiaoming",
age:12
}

var json=JSON.stringify(person); //{"name":"xiaoming","age":12}

stringify() 除了可以接受对象外,还可以接受2个参数,第一个参数是过滤器,可以是对象属性的数组集合,也可以是函数;第二个参数是一个选项,表示是否在JSON字符串中保留缩进;

数组过滤器
json=JSON.stringify(person,['name']); //{"name":"xiaoming"}
函数过滤器
json=JSON.stringify(person,function(key,value){
    switch(key){
        case "name":
           return value+",wang";
        case "age":
           return undefined;
        default:
           return value;
    }
});
//{"name":"xiaoming,wang"}

注意,如果函数返回undefined,则该属性就会被忽略;

字符串缩进
json=JSON.stringify(person,null,4);
{
    "name": "xiaoming",
    "age": 12
}

toJSON()

向对象添加toJSON()方法:

var person={
    name:"xiaoming",
    age:12,
    toJSON:function(){
        return this.name+" is "+this.age;
    }
}

json=JSON.stringify(person);
console.log(json); //"xiaoming is 12"

解析

parse()

parse()除了接受json字符串外,也可以接受一个函数参数。该函数接受2个值,一个键和一个值;

var person=JSON.parse('{"name":"xiaoming","age":12}');
var person=JSON.parse('{"name":"xiaoming","age":12}',function(key,value){
    if(key=="age"){
        return value+10;
    }
    else{
        return value;
    }
});

注意,如果函数返回undefined,则该属性就会被忽略;

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

推荐阅读更多精彩内容

  • json是一种轻量级的数据交换格式,它基于 ECMAScript 规范的一个子集,采用完全独立于编程语言的文本格式...
    七天_假阅读 1,537评论 2 36
  • 转载自 https://itbilu.com/javascript/js/Vkmh3oeOg.html JSON...
    JasonNull阅读 483评论 0 1
  • 1 Object 对象 教程:https://wangdoc.com/javascript/stdlib/obje...
    智勇双全的小六阅读 2,080评论 0 0
  •   曾经有一段时间,XML 是互联网上传输数据化结构的事实标准。Web 服务的第一次浪潮很大程度上都是建立在 XM...
    霜天晓阅读 370评论 0 1
  • 这周看了一本书《从0到1》,和一个动画《成年女性的动画时间》。 《从0到1》说创业或者公司的存活最好是解决一个问题...
    青苹果叶阅读 108评论 0 0