0
点赞
收藏
分享

微信扫一扫

xml与json的数据表示格式

Sophia的玲珑阁 2022-01-26 阅读 40


XML

xml:(extensible markup language)可扩展标记语言,是一种数据表示格式,可描述复杂的数据结构,常用语传输和存储数据。

例子:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE note SYSTEM "book.dtd">
<book id="1">
<name>Java核心技术</name>
<author>Cay S. Horstmann</author>
<isbn lang="CN">1234567</isbn>
<tags>
<tag>Java</tag>
<tag>Network</tag>
</tags>
<pubDate/>
</book>

xml的特点


  • 纯文本,默认UTF-8。
  • 可嵌套,适合表示结构化数据。

xml的结构


  • xml结构固定,首行必定是<?xml version="1.0"?>可以加上可选的编码。
  • 紧接着,如果以类似​​<!DOCTYPE note SYSTEM "book.dtd">​​声明的是文档定义类型(DTD:Document Type Definition),DTD是可选的。
  • 接下来是XML的文档内容,一个XML文档有且仅有一个根元素,根元素可以包含任意个子元素,元素可以包含属性,例如,​​<isbn lang="CN">1234567</isbn>​​​包含一个属性​​lang="CN"​​​,且元素必须正确嵌套。如果是空元素,可以用​​<tag/>​​表示。

常见的特殊字符如下:

xml与json的数据表示格式_json

xml是一种树形结构的文档,他有两种标准的解析API:


  • DOM:一次性读取xml,并在内存中表示为树形结构;
  • SAX:以流的形式读取xml,使用事件回调。

无论是DOM还是SAX解析xml,使用起来都不直观!

JSON

JSON:JavaScript Object Notation它去除了所有JavaScript执行代码,只保留JavaScript的对象格式。一个典型的JSON如下:

{
"id": 1,
"name": "Java核心技术",
"author": {
"firstName": "Abc",
"lastName": "Xyz"
},
"isbn": "1234567",
"tags": ["Java", "Network"]
}

JSON作为数据传输的格式,有几个显著的优点:


  • JSON只允许使用UTF-8编码,不存在编码问题;
  • JSON只允许使用双引号作为key,特殊字符用​​\​​转义,格式简单;
  • 浏览器内置JSON支持,如果把数据用JSON发送给浏览器,可以用JavaScript直接处理。

因此,JSON适合表示层次结构,因为它格式简单,仅支持以下几种数据类型:


  • 键值对:​​{"key": value}​
  • 数组:​​[1, 2, 3]​
  • 字符串:​​"abc"​
  • 数值(整数和浮点数):​​12.34​
  • 布尔值:​​true​​​或​​false​
  • 空值:​​null​

浏览器直接支持使用JavaScript对JSON进行读写:

// JSON string to JavaScript object:
jsObj = JSON.parse(jsonStr);

// JavaScript object to JSON string:
jsonStr = JSON.stringify(jsObj);

所以,开发Web应用的时候,使用JSON作为数据传输,在浏览器端非常方便。因为JSON天生适合JavaScript处理,所以,绝大多数REST API都选择JSON作为数据传输格式。



举报

相关推荐

0 条评论