NPM酷库,天天两分钟,相识一个盛行NPM库。·
JSON是JS中数据交换时最经常运用的数据花样,其序列话和反序列化机能非常好,然则其语法却比较严厉,比方以下是一个正当的JS声明,却不是一个正当的JSON:
{ foo: 'bar' }
JSON花样强迫请求对象key必需以双引号包括,字符串也必需运用双引号,等等。
假如我们只是挪用 JSON.stringify()
和 JSON.parse()
来举行数据的处置惩罚,那末也没什么关联,然则假如我们须要手写JSON,比方写配置文件或数据形式定义,那末严厉的JSON语法搜检会给编码带来许多不方便。
JSON5
JSON5 是一个JSON花样的扩大,目标是能够让人类更轻易读写数据文件。JSON5只是一个第三方的库,并不是JSON花样的继任者。JSON5相对于JSON,有以下各个方面上风。
对象:
- 属性key能够不必引号包括
- 属性key能够用单引号包括
- 能够有尾部过剩逗号
数组:
- 能够有尾部过剩逗号
字符串:
- 能够以单引号包括
- 支撑多行字符串
数字:
- 能够以16进制示意
- 能够以小数点开首或末端
- 支撑
Infinity
,-Infinity
,NaN
, 和-NaN
. - 能够显式声明正号
+
解释:
- 许可当行和多行解释
以下就是一个正当的JSON5花样文件:
{
foo: 'bar',
while: true,
this: 'is a \
multi-line string',
// this is an inline comment
here: 'is another', // inline comment
/* this is a block comment
that continues on another line */
hex: 0xDEADbeef,
half: .5,
delta: +10,
to: Infinity, // and beyond!
finally: 'a trailing comma',
oh: [
"we shouldn't forget",
'arrays can have',
'trailing commas too',
],
}
处置惩罚JSON5数据:
const JSON5 = require('json5');
let obj = JSON5.parse('{unquoted:"key",trailing:"comma",}');
let str = JSON5.stringify(obj);