JavaScript学习-json

出自:https://blog.csdn.net/luanpeng825485697/article/details/77046717

js中json 全解

js对象

var person0={
    name:"person0",                         //key和value间用冒号连接
    age:11                                  //不同的key-value对之间用逗号连接,最后一个value后不加符号。
};      

json对象

var person0 = {
    "name":"person0",                       //与js对象的对象字面量的区别在于属性必须加引号
    "age":12 
};  
var person1 = {
    "name":"person1",
    "age":12,
    "school":{                              //JSON中对象可以嵌套。每个JSON对象使用{}包含
        "name":"school1", 
        "address":"北大对面" 
    } 
    toJSON:function(){                      //toJSON函数是对象序列化时的调用虚函数
        return this.name;
    } 
};  

json数组

var persons = [person0,person1,person2];     //JSON数组,每一个元素都是json对象

json对象的操作

person0.name = "person0"                //json对象与js对象操作方法相同
person0['name'] = 'person0'
person0.newName = "pppp"                //也是支持属性的增删查改操作

json数组元素的操作

persons[2].age=person0.age;                                   //JSON中数组对象与js对象使用方法相同

将js对象、json对象、json数组转化json字符串(序列化)

var personstr = JSON.stringify(persons);                     //JSON.stringify将对象(js的或JSON的)转化为JSON字符串(称为序列化)。可以序列化对象或对象数组。会自动滤出值为underfined的属性。

person2str =JSON.stringify(person2,["name","age"],"--");    //第二个参数是过滤器,表示只保留name和age两个属性。第三个参数是换行缩进,可为数字缩进空格数目,最大缩进为10,可为字符串,表示缩进字符串。调用stringify,执行顺序:toJSON虚函数或对象本身->函数过滤器->存在属性进行序列化->缩进参数进行格式化

personstr = JSON.stringify(person2,function(key,value){        //使用函数为过滤器
   if(key=="name"||key=="age")
        return value;
    else
        return undefined;                                       //返回undefined就不会再被序列化
},4);                                                          

将json字符串转化为json对象、json数组

persons = JSON.parse(personstr);                             //JSON.parse将字符串转化为js对象或数组

person2 = JSON.parse(person2str,function(key,value){            //使用函数控制转化操作
  if(key=="name") return "family"+value;
    else return value;
});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值