NPM酷库,天天两分钟,了解一个流行NPM库。·git
JSON是JS中数据交换时最经常使用的数据格式,其序列话和反序列化性能很是好,可是其语法却比较严格,好比如下是一个合法的JS声明,却不是一个合法的JSON:github
{ foo: 'bar' }
JSON格式强制要求对象key必须以双引号包含,字符串也必须使用双引号,等等。json
若是咱们只是调用 JSON.stringify()
和 JSON.parse()
来进行数据的处理,那么也没什么关系,可是若是咱们须要手写JSON,好比写配置文件或数据模式定义,那么严格的JSON语法检查会给编码带来不少不便。数组
JSON5 是一个JSON格式的扩展,目的是可以让人类更容易读写数据文件。JSON5只是一个第三方的库,并不是JSON格式的继任者。JSON5相对于JSON,有以下各个方面优点。性能
对象:ui
数组:this
字符串:编码
数字:code
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);