资讯专栏INFORMATION COLUMN

NPM酷库044:json5,更可读的JSON

Flink_China / 3216人阅读

摘要:酷库,每天两分钟,了解一个流行库。是一个格式的扩展,目的是能够让人类更容易读写数据文件。只是一个第三方的库,并非格式的继任者。相对于,有如下各个方面优势。

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);
参考资料

https://github.com/json5/json5

http://json5.org

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/107539.html

相关文章

  • NPM酷库045:js-yaml,读写YAML

    摘要:酷库,每天两分钟,了解一个流行库。在酷库中,我们了解到了相对于格式更加易于编写和维护的,今天我们继续学习另外一个更加简单易读的数据格式。是一个专门用来读写格式数据的库,他可以将对象转换成字符串,也可以将字符串转换为对象。 NPM酷库,每天两分钟,了解一个流行NPM库。· 在NPM酷库044中,我们了解到了相对于JSON格式更加易于编写和维护的JSON5,今天我们继续学习另外一个更加简单...

    jsummer 评论0 收藏0
  • NPM酷库046:cson-parser,解析CSON数据

    摘要:酷库,每天两分钟,了解一个流行库。前两期我们分别介绍了和,这两种数据格式相对于,更加易于人类编写和理解,今天我们继续介绍另外一个容易编写的格式。 NPM酷库,每天两分钟,了解一个流行NPM库。· 前两期我们分别介绍了JSON5和YAML,这两种数据格式相对于JSON,更加易于人类编写和理解,今天我们继续介绍另外一个容易编写的格式 CSON。 CSON格式全称是 CoffeeScript...

    BigNerdCoding 评论0 收藏0
  • NPM酷库047:ini,解析INI配置文件

    摘要:酷库,每天两分钟,了解一个流行库。下方就是一个类型的配置文件库在中,我们使用库来解析文件参考资料 NPM酷库,每天两分钟,了解一个流行NPM库。· 最近几期我们都在研究各种数据文件类型,包括JSON5、YAML、CSON等,相对于JSON,这些格式能够更加易于人类编写和理解,所以更适合做配置文件,今天我们继续学习如何解析Windows系统上常用的*.ini配置文件。 下方就是一个INI...

    flyer_dev 评论0 收藏0
  • NPM酷库050:xmlbuilder,创建XML文件

    摘要:酷库,每天两分钟,了解一个流行库。在前几期酷库中,我们介绍了操作等数据格式文件,在外部系统接口中,我们还会经常遇到格式的接口协议。本期,我们先来了解,用来创建格式文档。 NPM酷库,每天两分钟,了解一个流行NPM库。· 在前几期NPM酷库中,我们介绍了Node.js操作JSON5、YAML、CSON、CSV等数据格式文件,在外部系统接口中,我们还会经常遇到XML格式的接口协议。从本期开...

    baukh789 评论0 收藏0
  • NPM酷库050:xmlbuilder,创建XML文件

    摘要:酷库,每天两分钟,了解一个流行库。在前几期酷库中,我们介绍了操作等数据格式文件,在外部系统接口中,我们还会经常遇到格式的接口协议。本期,我们先来了解,用来创建格式文档。 NPM酷库,每天两分钟,了解一个流行NPM库。· 在前几期NPM酷库中,我们介绍了Node.js操作JSON5、YAML、CSON、CSV等数据格式文件,在外部系统接口中,我们还会经常遇到XML格式的接口协议。从本期开...

    taoszu 评论0 收藏0

发表评论

0条评论

Flink_China

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<