JSON
2022年10月14日大约 2 分钟
描述
JSON 是一种语法,用来序列化对象、数组、数值、字符串、布尔值和 null 。它基于 JavaScript 语法
JavaScript类型 | JSON 的不同点 |
---|---|
对象和数组 | 属性名称必须是双引号括起来的字符串;最后一个属性后不能有逗号 |
数值 | 禁止出现前导零( JSON.stringify 方法自动忽略前导零,而在 JSON.parse 方法中将会抛出 SyntaxError);如果有小数点, 则后面至少跟着一位数字 |
字符串 | 只有有限的一些字符可能会被转义;禁止某些控制字符 |
JSON.parse()
- 描述:解析 JSON 字符串
- 语法:
JSON.parse(text[, reviver])
- 参数
- text:要被解析成 JavaScript 值的字符串
- reviver:转换器, 如果传入该参数(函数),可以用来修改解析生成的原始值,调用时机在 parse 函数返回之前
- 返回值:
Object
类型, 对应给定 JSON 文本的对象/值 - 注意:若传入的字符串不符合 JSON 规范,则会抛出
SyntaxError
异常
JSON.stringify()
- 描述:将一个 JavaScript 对象或值转换为 JSON 字符串
- 语法:
JSON.stringify(value[, replacer [, space]])
- 参数
- value:将要序列化成 一个 JSON 字符串的值
- replacer
- 如果该参数是一个函数,则在序列化过程中,被序列化的值的每个属性都会经过该函数的转换和处理
- 如果该参数是一个数组,则只有包含在这个数组中的属性名才会被序列化到最终的 JSON 字符串中
- 如果该参数为 null 或者未提供,则对象所有的属性都会被序列化
- space:指定缩进用的空白字符串,用于美化输出类型
- 如果参数是个数字,它代表有多少的空格;上限为10。该值若小于1,则意味着没有空格
- 如果该参数为字符串(当字符串长度超过10个字母,取其前10个字母),该字符串将被作为空格
- 如果该参数没有提供(或者为 null),将没有空格
- 返回值:一个表示给定值的JSON字符串