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);