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}