JSON 是什么 json是一种数据格式 序列化 意思是把对象字符串化 number:和JavaScript的number完全一致; boolean:就是JavaScript的true或false; string:就是JavaScript的string; null:就是JavaScript的null; array:就是JavaScript的Array表示方式——[]; object:就是JavaScript的{ ... }表示方式。 并且,JSON还定死了字符集必须是UTF-8,表示多语言就没有问题了 为了统一解析,JSON的字符串规定必须用双引号"",Object的键也必须用双引号"" 调用json方法,把对象转化成json JSON.stringify(xiaoming, ['name', 'skills'], ' ');//第一个参数是对象,第二个参数是输出指定的属性,第三个参数是缩进 JSON.stringify(xiaoming, null, ' '); function convert(key, value) { if (typeof value === 'string') { return value.toUpperCase(); } return value; } JSON.stringify(xiaoming, convert, ' ');//还可以传入一个函数,这样对象的每个属性对都会被函数先处理 如果我们还想要精确控制如何序列化小明,可以给xiaoming定义一个toJSON()的方法,直接返回JSON应该序列化的数据: var xiaoming = { 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}' 调用json方法,把json转化成对象(反序列化) 拿到一个JSON格式的字符串,我们直接用JSON.parse()把它变成一个JavaScript对象: JSON.parse('[1,2,3,true]'); // [1, 2, 3, true]