• js之json


    关于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);
  • 相关阅读:
    char*,const char*和string的相互转换[转]
    1.0到2.0 的变化
    Hello项目分析
    VS上编译Lua5.1.4生成静态库
    cocos2dx 自带动画
    asp.net2.0安全性(Login系列控件)
    用js实现的对css的一些操作方法
    mapxtreme开发小结3(c#)
    asp.net页面事件执行顺序
    access与SqlServer 之时间与日期及其它SQL语句比较
  • 原文地址:https://www.cnblogs.com/mu-mu/p/3394475.html
Copyright © 2020-2023  润新知