美文网首页
JSON(字符串)

JSON(字符串)

作者: 混吃等死小前端 | 来源:发表于2019-12-24 17:53 被阅读0次

    包含的数据类型:
    · number:和JavaScript的number完全一致;
    · boolean:就是JavaScript的true或false;
    · string:就是JavaScript的string;
    · null:就是JavaScript的null;
    · array:就是JavaScript的Array表示方式——[];
    · object:就是JavaScript的{ ... }表示方式。

    把任何JavaScript对象变成JSON,就是把这个对象序列化成一个JSON格式的字符串

    1、对象序列化成JSON格式的字符串

    var xiaoming = {
        name: '小明',
        age: 14,
        gender: true,
        height: 1.65,
        grade: null,
        'middle-school': '\"W3C\" Middle School',
        skills: ['JavaScript', 'Java', 'Python', 'Lisp']
    };
    function convert(key, value) {
        if (typeof value === 'string') {
            return value.toUpperCase();
        }
        return value;
    }
    
    
    
    var s = JSON.stringify(xiaoming,['name', 'skills'],4);
    var s2 = JSON.stringify(xiaoming, convert, '  ');
    // 第一个参数:js对象
    //第二个参数:Array输出指定的属性或者Function处理值
    //第三个参数:缩进,用于输出美化
    console.log(s);
    //输出
    {
        "name": "小明",
        "skills": [
            "JavaScript",
            "Java",
            "Python",
            "Lisp"
        ]
    }
    
    console.log(s2);
    //输出
    {
        "name": "小明",
        "age": 14,
        "gender": true,
        "height": 1.65,
        "grade": null,
        "middle-school": "\"W3C\" MIDDLE SCHOOL",
        "skills": [
            "JAVASCRIPT",
            "JAVA",
            "PYTHON",
            "LISP"
        ]
    }
    

    2、JSON格式的字符串反序列化成一个JavaScript对象

    //json键值必须都用" "
    JSON.parse('{"name":"小明","age":14}');//{name: "小明", age: 14}
    
    //JSON.parse()还可以接收一个函数,用来转换解析出的属性
    var obj = JSON.parse('{"name":"小明","age":14}', function (key, value) {
        if (key === 'name') {
            return value + '同学';
        }
        return value;
    });
    console.log(JSON.stringify(obj)); // {name: '小明同学', age: 14}
    

    相关文章

      网友评论

          本文标题:JSON(字符串)

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