美文网首页
JavaScript中的JSON

JavaScript中的JSON

作者: 豆浆的铲屎官 | 来源:发表于2018-12-04 21:42 被阅读0次

    序列化

    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,则该属性就会被忽略;

    相关文章

      网友评论

          本文标题:JavaScript中的JSON

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