JSON(字符串)

2019-12-24  本文已影响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}
上一篇下一篇

猜你喜欢

热点阅读