js之json

来源:互联网 发布:逆战刷枪软件手机版 编辑:程序博客网 时间:2024/06/04 18:10

关于json不了解的,请点击:http://www.json.org/json-zh.html

json对象的属性必须要用双引号,值为字符串类型也只能使用双引号,例:{"name":"mu"} json不支持undefined类型

由于ie8-版本不支持JSON对象,所以需要引用https://github.com/douglascrockford/JSON-js/blob/master/json2.js文件 才能模拟JSON对象并调用它的相关方法 (eval方法虽然也可以做json对象的转换,但不安全)

1 js对象转换为json字符串 JSON.stringify

var obj = { name: "mu", age: 30, sex: 1 };var json = JSON.stringify(obj);document.write(json);//JSON.stringify 第二参数传一个数组,则js对象跟数组中的元素同名的属性才会被转换json = JSON.stringify(obj,["name","sex"]);document.write(json);//JSON.stringify 第二参数传入一个回调函数,并以js对象的键和值为参数,可对转换的值进行处理,如果返回undefined则不会转换该js对象的属性json = JSON.stringify(obj, function(key,value) {    if (key == "name") {        return value + "test";    }    return value;});document.write(json);//JSON.stringify 第三参数传一个数字,则会缩进显示,但数字超过10则只按10处理json = JSON.stringify(obj, null,10);alert(json);//JSON.stringify 第三参数传一个字符串,则会在属性前加上这个字符串,但传入的字符超过10个则截取10个字符alert(json);//如果对象中有toJSON方法,则先调用toJSON,得到结果会再执行第二个参数和第三个参数var obj = {    name: "mu",    age: 30,    sex: 1,    toJSON: function() {        return this.name;    }};json = JSON.stringify(obj);document.write(json);


2 json字符串转换为js对象 JSON.parse

var obj = { "name": "mu", "age": 30, "sex": 1 };var json = JSON.stringify(obj);var o = JSON.parse(json);document.write(o.name);//JSON.parse 第二参数传入一个函数,并且参数为对应的键和值,转换的对象属性的值进行修改o = JSON.parse(json, function(key,value) {    if (key == "name") {        return "test" + value;    }    return value;});document.write(o.name);

ps:摘自http://www.cnblogs.com/mu-mu/p/3394475.html








0 0
原创粉丝点击