JSON
格式的标准定义就是来源于 JavaScript 的 {}
,两者几乎是一样的,只是 JSON 稍微严格。
/*
JSON 的本质是字符串形式的 object 类型 '{...}' | 因为只有 “序列化” 成字符串,才能通过网络编码传输
typeof _JSON "string"
*/
var _JSON = '{
"name": "jobs",
"age": 17,
"like": ["strawberry", "bread"],
"parents": {"mon": "Lily", "dad": "mark"},
"married": false,
"money": null
}'
/*
严格
*/
var obj = {
name: 'job', // object 类型的 key 可以不带 引号、单引号、双引号,而 JSON 统一规定,字符串必须是 “双引号”
'age': 17,
"like": [...]
}
把 JavaScript 对象编码成 JSON
。
var obj = {
name: 'eva',
age: 3
}
// 正常格式化
JSON.stringify(obj) // '{"name":"eva","age":3}'
// 友好显示
JSON.stringify(obj,null)
// 过滤
JSON.stringify(obj,['name']) // '{"name": "eva"}' | 只保留 name
// 定制
JSON.stringify(obj,function (key, value) {
if (key === 'name'){
return value + ' cai'
}
return value
})
'{"name":"eva cai","age":3}'
把 JSON
解码成 JavaScript 对象。
JSON.parse('{"name":"eva","age":3}') // {name: "eva", age: 3}
// 定制
JSON.parse({}, function (key, value) { ... }) // 同上