JSON

跟着廖雪峰老师的  JavaScript 教程学习过程中,当学习到 JSON 时, 突然感觉自己学习过的知识点,是在有必要去总结起来,否则很有可能又吐出来。

JSON:JavaScript Object Notation的缩写,它是一种数据交换格式,它的最直观的特征就是,我们是以  key-value  为基础,来进行数据的传输,也就是说,我们所见的类似于

var xiaoming = {
    name: '小明',
    age: 14,
    gender: true,
    height: 1.65,
    grade: null,
    'middle-school': '\"W3C\" Middle School',
    skills: ['JavaScript', 'Java', 'Python', 'Lisp']
} 

是很明显的一个 JSON 形式的数据。



 

JSON 常用的函数

 1. stringify , 实际上可以把一个对象展开。

   上面为基础,我们如果运行如下代码:

var s = JSON.stringify(xiaoming);
console.log(s);

会出现:

{"name":"小明","age":14,"gender":true,"height":1.65,"grade":null,"middle-school":"\"W3C\" Middle School","skills":["JavaScript","Java","Python","Lisp"]}
JSON.stringify(xiaoming, ['name', 'skills'], '  ');  //专门筛选 name 和 skills

function convert(key, value) {
    if (typeof value === 'string') {
        return value.toUpperCase();
    }
    return value;
}

JSON.stringify(xiaoming, convert, '  ');     //声明一个函数,然后函数作用于 Json 对象

var xiaoming = {                            //函数不止可以外面定义,还可以在内部定义,从而作用于Json。
    name: '小明',
    age: 14,
    gender: true,
    height: 1.65,
    grade: null,
    'middle-school': '\"W3C\" Middle School',
    skills: ['JavaScript', 'Java', 'Python', 'Lisp'],
    toJSON: function () {
        return { // 只输出name和age,并且改变了key:
            'Name': this.name,
            'Age': this.age
        };
    }
};

JSON.stringify(xiaoming); // '{"Name":"小明","Age":14}'                  


2.Json 形式的字符串,我们用 JSON.parse() 可以转换成 Javascript 形式的 对象。

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 对象,我们只有一些key-value 形式的信息,我们通过Json.parse()方法 ,将这些信息组织成一个Json形式的对象。






 

 

   

posted @ 2018-08-25 12:39  3532  阅读(133)  评论(0编辑  收藏  举报