加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

JSON、XML、TOML、CSON、YAML 大比拼

发布时间:2019-06-03 21:21:52 所属栏目:建站 来源:Linux技术
导读:我们坚持使用 web 系统可以理解或不需要太多努力就能理解的特殊格式,而且对人类可读性特别有用的格式。每个都有各自的优缺点和适当的用例场景。 -- Tim Anderson 一段超级严肃的关于样本序列化的集合、子集和超集的文字 我是一名开发者,我读代码,我写代

这对你来说应该是完全有意义的。它简洁明了,并且从 XML 中删除了大量额外废话,并传达相同数量的信息。JSON 现在是王道,本文剩下的部分会介绍其它语言格式,这些格式只不过是 JSON 的简化版,尝试让其更简洁或对人类更易读,可结构还是非常相似的。

TOML: 缩短到彻底的利他主义

TOML( Tom 的显而易见的最小化语言(Tom’s Obvious, Minimal Language))允许以相当快捷、简洁的方式定义深层嵌套的数据结构。名字中的 Tom 是指发明者 Tom Preston Werner ,他是一位活跃于我们行业的创造者和软件开发人员。与 JSON 相比,语法有点尴尬,更类似 ini 文件 。这不是一个糟糕的语法,但是需要一些时间适应。

  1. [[books]] 
  2. id = 'bk101' 
  3. author = 'Crockford, Douglas' 
  4. title = 'JavaScript: The Good Parts' 
  5. genre = 'Computer' 
  6. price = 29.99 
  7. publish_date = 2008-05-01T00:00:00+00:00 
  8. description = 'Unearthing the Excellence in JavaScript' 

TOML 中集成了一些很棒的功能,例如多行字符串、保留字符的自动转义、日期、时间、整数、浮点数、科学记数法和“表扩展”等数据类型。最后一点是特别的,是 TOML 如此简洁的原因:

  1. [a.b.c] 
  2. d = 'Hello' 
  3. e = 'World' 

以上扩展到以下内容:

  1. "a": { 
  2. "b": { 
  3. "c": { 
  4. "d": "Hello" 
  5. "e": "World" 

使用 TOML,你可以肯定在时间和文件长度上会节省不少。很少有系统使用它或非常类似的东西作为配置,这是它最大的缺点。根本没有很多语言或库可以用来解释 TOML。

CSON: 特定系统所包含的简单样本

首先,有两个 CSON 规范。 一个代表 CoffeeScript Object Notation,另一个代表 Cursive Script Object Notation。后者不经常使用,所以我们不会关注它。我们只关注 CoffeeScript。

CSON 需要一点介绍。首先,我们来谈谈 CoffeeScript。 CoffeeScript 是一种通过运行编译器生成 JavaScript 的语言。它允许你以更加简洁的语法编写 JavaScript 并 转译 成实际的 JavaScript,然后你可以在你的 web 应用程序中使用它。CoffeeScript 通过删除 JavaScript 中必需的许多额外语法,使编写 JavaScript 变得更容易。CoffeeScript 摆脱的一个大问题是花括号 —— 不需要它们。同样,CSON 是没有大括号的 JSON。它依赖于缩进来确定数据的层次结构。CSON 非常易于读写,并且通常比 JSON 需要更少的代码行,因为没有括号。

CSON 还提供一些 JSON 不提供的额外细节。多行字符串非常容易编写,你可以通过使用 # 符号开始一行来输入 注释 ,并且不需要用逗号分隔键值对。

  1. books: [ 
  2. id: 'bk102' 
  3. author: 'Crockford, Douglas' 
  4. title: 'JavaScript: The Good Parts' 
  5. genre: 'Computer' 
  6. price: 29.99 
  7. publish_date: '2008-05-01' 
  8. description: 'Unearthing the Excellence in JavaScript' 

这是 CSON 的大问题。它是 CoffeScript 对象表示法(CoffeeScript Object Notation)。也就是说你要用 CoffeeScript 解析/标记化/lex/转译或其它方式来使用 CSON。CoffeeScript 是读取数据的系统。如果数据序列化的目的是允许数据从一个系统传递到另一个系统,这里我们有一个只能由单个系统读取的数据序列化格式,这使得它与防火火柴、防水海绵或者叉匙恼人的脆弱叉子部分一样有用。

如果这种格式被其它系统也采用,那它在开发者世界中可能非常有用。但到目前为止这基本上没有发生,所以在 PHP 或 JAVA 等替代语言中使用它是不行的。

YAML:年轻人的呼喊

开发人员感到高兴,因为 YAML 来自 一个 Python 的贡献者 。YAML 具有与 CSON 相同的功能集和类似的语法,有一系列新功能,以及几乎所有 web 编程语言都可用的解析器。它还有一些额外的功能,如循环引用、软包装、多行键、类型转换标签、二进制数据、对象合并和 集合映射 。它具有非常好的可读性和可写性,并且是 JSON 的超集,因此你可以在 YAML 中使用完全合格的 JSON 语法并且一切正常工作。你几乎不需要引号,它可以解释大多数基本数据类型(字符串、整数、浮点数、布尔值等)。

  1. books: 
  2. - id: bk102 
  3. author: Crockford, Douglas 
  4. title: 'JavaScript: The Good Parts' 
  5. genre: Computer 
  6. price: 29.99 
  7. publish_date: !!str 2008-05-01 
  8. description: Unearthing the Excellence in JavaScript 

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读