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) { ... }) // 同上
JavaScript 数据类型
JavaScript 数字
JavaScript 字符串
JavaScript 数组
JavaScript 对象
JavaScript Map
JavaScript Set
JavaScript null
JavaScript undefined
JavaScript 类型检测
JavaScript 包装对象
JavaScript 函数
JavaScript 参数
JavaScript 匿名函数
JavaScript 箭头函数
JavaScript 递归
JavaScript 闭包
JavaScript 生成器
JavaScript 异步
JavaScript setTimeout
JavaScript setInterval
JavaScript 回调
JavaScript Promise
JavaScript async await