美文网首页
从网络技术视角简单理解JSON、XML和YAML

从网络技术视角简单理解JSON、XML和YAML

作者: 挨踢江湖一叶扁舟 | 来源:发表于2022-10-24 16:51 被阅读0次

JSON、XML和YAML,都是数据有序化序言,或者说数据有序化格式。这里有必要先聊聊什么是数据有序化。

1.数据有序化(Data Serialization)

简单说即是将数据转化为标准格式的过程,再详细点说就是为了让标准格式或者结构的数据能以文件形式进行存储或者通过网络进行传输以及通过其他应用程序进行解读和重构。

那为什么我们需要数据有序化?

因为只有这样数据才可以在不同的应用程序之间以双方都能理解的方式进行交互和沟通。举个栗子,假如APP A基于Python开发,APP B基于JAVA开发,两种语言必然是以不同的方式存储和理解数据,因此需要一种标准的数据格式让两者之间能正常交互数据。

客户端与SDN控制器的数据交互过程:没有标准的数据有序化参与

这里举例SDN控制器与客户端通信的场景说明数据交互过程:

√  假设客户端App通过REST API使用GET(即HTTP请求)向SDN控制器进行信息查询

√   控制器直接将内部变量数据发送给客户端,而不将他们转换为标准格式的数据(例如JSON)

√  客户端无法直接理解控制器发来的数据,因为控制器和外部客户端程序可能是完全不同的语言编写的,他们各自存储和理解数据的方式各不相同而无法直接通信。

客户端与SDN控制器的数据交互过程:有标准的数据有序化JSON参与

√  客户端发起GET请求

√  控制器将内部变量数据发送到API,同时转换为标准的JSON格式,并将JSON格式的数据通过网络发送到客户端

√  控制器发送的数据为标准的JSON格式数据,控制器和客户端都能正确理解

√  客户端正确理解数据后即可按照本地应用程序语言规则进行本地化数据处理和存储

2. JSON(JavaScript Object Notation)

这里不深入具体数据结构,仅作简单介绍

√  开放的标准文件格式和数据交互格式,兼顾人类可读性和计算机可读性,既可以文件方式进行存储也可以网络方式进行传输

√  在RFC 8295中标准化

√  起源于JavaScript,但本身不依赖具体语言,很多现代编程语言都能生成和读取JSON格式的数据

     -->REST API通常使用JSON

下图是一个完整的JSON Object数据结构,简单感受下:

人类易读表达 机器易读表达

3. XML(Extensible Markup Language)

√  从命名可知原本就是标记语言,原来就是用在HTML代码中用来标识HTTP页面中字体、大小、颜色和标题等信息的。

√  现在也被用作数据有序化语言,用于RSET API数据传输

√  XML比较不那么好读

√  <key>value<key>表达形式

按惯例来张图,简单感受下:

4.YAML(YAML Aint Markup Language)

√  最初也是一门标记语言,不过后来发展成了数据有序化语言,英文原来叫Yet Anather Markup Language(又一门标记语言!),现在则叫YAML Aint Markup Language(我现在完全不是标记语言!)

√  YAML现在常见用于网络自动化工具Ansible

√  YAML最简单易读!

√  YAML文件以--(两个杠)开头,用 - (一个杠)对应一个List

√  Key和Value表达形式为key:value

继续按惯例来张图,简单感受下:

最后再来张图,对比下JSON和YAML针对接口信息的简单表达:

相关文章

  • 从网络技术视角简单理解JSON、XML和YAML

    JSON、XML和YAML,都是数据有序化序言,或者说数据有序化格式。这里有必要先聊聊什么是数据有序化。 1.数据...

  • XML、JSON 和 YAML

    数据序列化 数据序列化是将复杂数据结构中存在的数据对象转换为字节流以在物理设备上进行存储、传输和分发的过程。计算机...

  • 比较一下XML, JSON和YAML

    比较一下XML, JSON和YAML 大家好,这一期呢,我们来比较一下XML, JSON和YAML这三种数据格式文...

  • yaml>json>xml

    yaml比json和xml好https://blog.csdn.net/vincent_hbl/article/d...

  • 02、工厂模式

    简单工厂模式(静态工厂) 举例:我们根据配置文件的后缀(json、xml、yaml、properties),选择不...

  • Ansible基础使用

    零、相关准备 0.1 YAML语法 YAML类似XML或JSON,易于读写 对于Ansible,每一个YAML文件...

  • python 信息标记与提取方法

    @[toc]信息标记的三种形式:XML、JSON、YAML XML eXtensible Markup Langu...

  • YAML 入门指南

    YAML 入门指南 YAML 简介 我们使用 YAML 是因为它像 XML 或 JSON 是一种利于人们读写的数据...

  • Spring Boot配置文件

    1.YAML2.properties 1.YAML YAML:以数据为中心,比json、xml等更适合做配置文件 ...

  • JSON Schema辅助工具

    JSON在线解析工具(功能包括:JSON格式化、压缩、验证格式、JSON转XML、CSV、YAML),地址如下:h...

网友评论

      本文标题:从网络技术视角简单理解JSON、XML和YAML

      本文链接:https://www.haomeiwen.com/subject/pujgzrtx.html