数据交换协议--JSON、XML、YAML、TOML、TLV

  • 1 数据交换协议
  • 2 常用协议
    • 2.1 JSON
      • 介绍
      • 示例
    • 2.2 XML
      • 介绍
      • 示例
    • 2.3 CSON
      • 介绍
      • 示例
    • 2.4 TOML
      • 介绍
      • 示例
    • 2.5 YAML
      • 介绍
      • 示例
    • 2.6 TLV
  • 参考

1 数据交换协议

数据交换协议的目的是让两个系统进行正确的数据交互。所以几乎各种开发语言都提供了方便使用的数据交换功能。
像JSON、XML、YAML、TOML直接按照规则使用,可用在软件的配置文件,系统间通信协议。如工业设备的操作命令,使用JSON协议。
TLV是自己定义的协议,详见参考[1]。如用在上下位机的串口通信中。

2 常用协议

2.1 JSON

介绍

JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

示例

{"name": "中国","province": [{"name": "黑龙江","cities": {"city": ["哈尔滨", "大庆"]}}, {"name": "广东","cities": {"city": ["广州", "深圳", "珠海"]}}, {"name": "台湾","cities": {"city": ["台北", "高雄"]}}, {"name": "新疆","cities": {"city": ["乌鲁木齐"]}}]
}

2.2 XML

介绍

可扩展标记语言,标准通用标记语言的子集,简称XML。是一种用于标记电子文件使其具有结构性的标记语言。

示例

<?xml version="1.0" encoding="utf-8"?>
<country><name>中国</name><province><name>黑龙江</name><cities><city>哈尔滨</city><city>大庆</city></cities></province><province><name>广东</name><cities><city>广州</city><city>深圳</city><city>珠海</city></cities></province><province><name>台湾</name><cities><city>台北</city><city>高雄</city></cities></province><province><name>新疆</name><cities><city>乌鲁木齐</city></cities></province>
</country>

2.3 CSON

介绍

首先,有两个 CSON 规范。 一个代表 CoffeeScript Object Notation,另一个代表 Cursive Script Object Notation。后者不经常使用,所以我们不会关注它。我们只关注Coffee Script。
CSON 需要一点介绍。首先,我们来谈谈 CoffeeScript。CoffeeScript 是一种通过运行编译器生成 JavaScript 的语言。它允许你以更加简洁的语法编写 JavaScript 并转译成实际的 JavaScript,然后你可以在你的 web 应用程序中使用它。CoffeeScript 通过删除 JavaScript 中必需的许多额外语法,使编写 JavaScript 变得更容易。CoffeeScript 摆脱的一个大问题是花括号 —— 不需要它们。同样,CSON 是没有大括号的 JSON。它依赖于缩进来确定数据的层次结构。CSON 非常易于读写,并且通常比 JSON 需要更少的代码行,因为没有括号。
要用 CoffeeScript 解析/标记化/lex/转译或其它方式来使用 CSON。

示例

books: [id: 'bk102'author: 'Crockford, Douglas'title: 'JavaScript: The Good Parts'genre: 'Computer'price: 29.99publish_date: '2008-05-01'description: 'Unearthing the Excellence in JavaScript'
]

2.4 TOML

介绍

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

示例

[[books]]
id = 'bk101'
author = 'Crockford, Douglas'
title = 'JavaScript: The Good Parts'
genre = 'Computer'
price = 29.99
publish_date = 2008-05-01T00:00:00+00:00
description = 'Unearthing the Excellence in JavaScript'

2.5 YAML

介绍

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

示例

books:- id: bk102author: Crockford, Douglastitle: 'JavaScript: The Good Parts'genre: Computerprice: 29.99publish_date: !!str 2008-05-01description: Unearthing the Excellence in JavaScript

2.6 TLV

详见 网络通信–协议设计

参考

1、网络通信–协议设计
2、百科–JSON
3、JSON、XML、TOML、CSON、YAML 大比拼
4、YAML文件简介
5、深入对比TOML,JSON和YAML
6、比较一下XML, JSON和YAML
7、系统间通信(一)——数据交换序列化格式
8、百科–XML

数据交换协议--JSON、XML、YAML、TOML、TLV相关推荐

  1. 软件开发中的几种数据交换协议

    在很多地方都有"数据交换"这个概念,本文所说的"数据交换" 是指在计算机网络中,一个系统把数据传递给另外一个系统.这非常类似于一个人要告诉另外一个人一件事情. ...

  2. 软件系统开发中的数据交换协议

    在很多地方都有"数据交换"这个概念,本文所说的"数据交换" 是指在计算机网络中,一个系统把数据传递给另外一个系统.这非常类似于一个人要告诉另外一个人一件事情. ...

  3. 使用JAVA对接跨境贸易电子商务数据交换接口拼接xml

    使用JAVA对接跨境贸易电子商务数据交换接口拼接xml 1.首先创建一个package-info.java 其中添加一下内容 /*** package-info.java* 放在和实体同一个包路径下* ...

  4. LIS常用数据交换协议

    一.私有交换协议 仪器厂商自定义的数据交换协议,通用性差. 1.ASTM协议介绍 2.ASTM 美国材料与试验协会(American Society for Testing and Materials ...

  5. 数据交换格式Json与XML

    什么是数据交换格式: 主流的有Json.XML.HTML. 数据交换格式的应用场景: 移动端(安卓,IOS)通讯方式采用http协议+Json格式的restful风格. 很多互联网公司都是用Http协 ...

  6. 【web测试】不同格式的文件操作(txt,csv,excel,json,xml,yaml)

    [web测试]数据驱动 python操作文件 txt文件 csv格式 excel文件 json格式 xml文件 yaml格式 python操作文件 txt文件 # 读取r 写入w;rb-二进制读取;w ...

  7. 数据交互协议——JSON

    作者:konishi5202 链接:https://www.jianshu.com/p/4fcb49b55ff6 来源:简书 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. JS ...

  8. Pandas载入数据(csv, JSON,XML,Excel,二进制数据,网页数据,数据库数据)

    数据载入,存储及文件格式 这里用到的样本数据git地址:https://github.com/wesm/pydata-book 访问数据是使用各类工具所必须的第一步(获取数据).这里重点讨论使用pan ...

  9. 轻量级数据交换格式JSON

    json是一种数据格式,不是一种编程语言. json是一种轻量级的数据格式,可以简化表示复杂数据结构的工作量. 1.语法 ①json字符串必须使用双引号 ②没有声明变量 ③没有末尾分号 ④json对象 ...

最新文章

  1. 【数理知识】《积分变换与场论》王振老师-目录
  2. MySQL存储过程简介
  3. Python机器学习:KNN算法07数据归一化
  4. 如何使用dtls协议抵御重放攻击
  5. html placeholder 兼容问题,解决placeholder的兼容性
  6. Java中单例模式—饿汉式和懒汉式
  7. 加密托管服务商Unchained Capital完成550万美元融资,NYDIG领投
  8. TextView内可以有多种样式吗?
  9. ubuntu下安装pythoncharm_Ubuntu下安装、激活并配置Pycharm
  10. 关于线程协同的火车票售卖程序
  11. 如何快速学习PLC编程
  12. 学习方法分享:为何一年半就能拿到大厂 offer
  13. sumif单列求和_Sumif、Sumifs单列多条件求和
  14. 小计:reducer 到底是什么,白话理解
  15. 基于C语言的9*9数独生成器(回溯法)
  16. Java语言程序设计数据结构基础篇第11版6.31(金融应用:信用卡号的合法性检验)信用卡号遵循某种模式。一个信用卡号必须是13-16位的整数 (java)
  17. 灰度图像增强和图像去噪
  18. python百度地图和租房信息_python爬虫租房信息在地图上显示的方法
  19. 微信高级群发之预览接口
  20. opencv 去除背景

热门文章

  1. iframe 嵌入页面后无法显示的问题
  2. HTML5期末大作业:月饼美食网站设计——月饼美食食品模板(9页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程食品设计网页规划与设计 计食品模板设计源码
  3. 信道编码之纠删码编码
  4. (附源码)app电影选座订票 毕业设计 011439
  5. AR+教育:ALVA SYSTEMS把图书馆做成了4D百科全书
  6. 西方经济学高鸿业第7版复习资料合集
  7. 信息系统项目管理师(杂)
  8. 爬取糗事百科图片(正则案例)
  9. android 11中置入第三方应用apk
  10. 在未来几年,有哪些职业可能被人工智能取代?