JSON学习
概念
JSON 全称为 JavaScript Object Notation,是一种轻量级的数据交换格式。
结构和语法
标准key:value格式,建议使用双引号,因为大多数JSON解析器使用双引号解析JSON对象
解析和序列化
JSON.parse():将数据转化为javascript对象
JSON.stringify():将javascript对象转换为字符串
JSON.parse()
JSON.parse(text, reviver)
- text:必需,有效的json字符串
- reviver:可选,一个转换结果的回调函数,对象的每个成员调用此函数
JSON.stringify()
JSON.stringify(value, replacer, space)
- value:必需,要转换的javascript值(数组或对象)
- replacer:可选
- 为函数:将成员的键和值传入函数,使用返回值而不是原始值。如果返回undefined,则排除成员。根对象的键是一个空字符串
- 为数组:则仅转换该数组中具有键值的成员。
- space:可选,文本添加缩进、空格和换行符,如果space为数字,则返回值文本在每个级别缩进 2 个空格。大于10的时候,缩进10个空格。最大为十。如果缩进是一个字符串而不是空格,就可以传入需要缩进的填充字符串
异常处理
建议使用try…catch包裹,避免因为不规范的json结构阻碍程序运行
其他操作
删除键值对
使用delete运算符删除JSON中的键值对:
const json = {"name": "zhangsan", "age": 18, "city": "beijing"};
delete json.city;
console.log(json); // {name: 'zhangsan', age: 18}
访问数组项
使用方括号【】和索引从JSON中访问数组项
const json = {
"name": "zhangsan",
"age": 18,
"job": ["React", "JavaScript"],
};
console.log(json.job[0]); // React
遍历数组项
使用for循环
const json = {
"name": "zhangsan",
"age": 18,
"job": ["React", "JavaScript"],
};
for (item of json.job) {
console.log(item); // React JavaScript
}
本作品采用 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议 (CC BY-NC-ND 4.0) 进行许可。