JSON5是对JSON的扩展,让人可以更容易手工编写和维护,用来减少一些JSON的限制,诸如json语法不支持注释,不支持字符串换行,所有的key都必须双引号,末尾不能有多余的逗号…等等,一大堆极其严格的要求和不支持的功能。
安装引用
npm install json5
const JSON5 = require('json5')
<script src="https://unpkg.com/json5@^2.0.0/dist/index.min.js"></script>
语法示例
JSON5.parse(text[, reviver])
JSON5.stringify(value[, replacer[, space]])
JSON5.stringify(value[, options])
减轻json的限制
{
// comments
unquoted: ‘and you can quote me on that’,
singleQuotes: ‘I can use “double quotes” here’,
lineBreaks: “Look, Mom!
No 's!”,
hexadecimal: 0xdecaf,
leadingDecimalPoint: .8675309, andTrailing: 8675309.,
positiveSign: +1,
trailingComma: ‘in objects’, andIn: [‘arrays’,],
“backwardsCompatible”: “with JSON”,
}
1,对象Objects
属性key可以不使用引号包含
属性key可以使用单引号包含
允许有多余的逗号结尾
2,数组Array
允许有多余的逗号结尾
3,字符串String
字符串允许使用单引号包裹字符串
字符串允许使用转义字符
通过转义换行符,字符串可以跨越多行
{
$name:‘HellO’,
$desc:"hello
world!
haha!
",
code:1,
msg:“Hello World !”,
}
4,数字number
数字可以用十六进制表示
允许使用小数点开头或结尾的数字
数字可以使用正无穷大、负无穷大、和Nan 来表示
数字前面可以有一个正号+
{
code:0xFF,
a:.007,
b:7.
f:-.32e-3,
p:Infinity,
n:-Infinity,
c:NaN,
d:+10
}
5,标注 comment
支持单行注释和多行注释
6,空白 white space
允许在任何在json5相关符号之前和之后都可能出现多余的空白符。