API接⼝传输的数据交换格式有哪⼏种?
前⾔:⼀般在使⽤API接⼝传输数据时通常会使⽤三种数据交换格式:JSON、XML、YAML
下⾯详细介绍⼀下这些数据交换格式:
⼀、 (JavaScript Object Notation)
JSON (JavaScript Object Notation, JS 对象简谱) 是⼀种轻量级的数据交换格式。它基于 ECMAScript
(欧洲计算机协会制定的js规范)的⼀个⼦集,采⽤完全独⽴于编程语⾔的⽂本格式来存储和表⽰数据。简洁和清晰的层次结构使得JSON
成为理想的数据交换语⾔。 易于⼈阅读和编写,同时也易于机器解析和⽣成,并有效地提升⽹络传输效率。
简单来说:JSON是⼀种轻量级的数据交换格式,结构清晰易于使⽤,相⽐XML重量级的数据交换格式更加的好⽤,所以⼤多数客户端和服务器端采⽤JSON的⽅式进⾏数据交换格式进⾏通讯。
JSON的数据结构如下:
{
"fruit":[
{
"name":"苹果",
"address":"烟台",
"price":"12.9",
"unit":"kg"
},
json值的类型有哪些{
"name":"⾹蕉",
"address":"海南",
"price":"6.5",
"unit":"kg"
}
]
}
json数据格式以两种⽅式呈现:对象/数组。
以"{“开头,”}“结尾,”{}“包裹的为⼀个json对象,对象⾥⾯的值以key value格式存放。”[]"表⽰json数组,⾥⾯装载着若⼲json对象。
常⽤的JSON解析框架(推荐⽤jackson):
fastjson(阿⾥)、gson(⾕歌)、jackson(SpringMVC⾃带)
⼆、 (Extensible Markup Language)
可扩展标记语⾔,标准通⽤标记语⾔的⼦集,(Extensible Markup
Language,简称XML)。
是⼀种⽤于标记电⼦⽂件使其具有结构性的标记语⾔。主要作⽤是⽤来(描述)存储⼀些数据,或者说⽤来做配置⽂件使⽤,如spring 项⽬就采⽤了xml⽂件。
使⽤xml要注意⽂件头部的结构,需要声明版本号,编码⽅式。xml中⽤标签的⽅式呈现,层层嵌套,可看做树形结构。
XML数据结构如下:
<?xml version="1.0" encoding="UTF-8"?>
<students>
<student id="1">
<name>⼩明</name>
<address>深圳</address>
<sex>1</sex>
</student>
... ...
</students>
XML的解析⽅式:
Dom4j、Sax、Pull,⼀般是这⼏种。
dom4j不适合⼤⽂件的解析,因为它是⼀下⼦将⽂件加载到内存中,所以有可能出现内存溢出。sax是基于事件来对xml进⾏解析的,所以他可以解析⼤⽂件的xml,也正是因为如此,所以dom4j可以对xml进⾏灵活的增删改查和导航,⽽sax没有这么强的灵活性,所以sax经常是⽤来解析⼤型xml⽂件,⽽要对xml⽂件进⾏⼀些灵活(crud)操作就⽤dom4j。
公司项⽬中解析xml我使⽤的dom4j,使⽤dom4j主要就是操作Document对象。创建SAXReader对象后通过对象读取⽂件,获取Document对象之后就很⽅便了,再获取根节点,即root节点,之后的操作就是⼀些迭代获取属性/⽂本之类的操作。
三、 (Yet Another Markup Language)
YAML是⼀种直观的能够被电脑识别的的数据序列化格式
以下是YAML数据的具体表现形式:
key:
child-key: value
child-key2: value2
YAML的适⽤范围:
a.由于实现简单,解析成本低,特别适合在脚本语⾔中使⽤
b.YAML⽐较适合做序列化。因为它是宿主语⾔数据类型直转的。
c.YAML做配置⽂件也不错。⽐如Ruby on Rails的配置就选⽤的YAML。
四、待补充:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论