简述XML和JSON

简介: 笔记

5.png


序列化是一种语言格式,用于转换对象并将其传输到文件、数据库或字节流。XML 和 JSON 是序列化语言格式的类型。

XML(Extensible Markup Language)和 JSON(JavaScript Object Notation)都是数据交换格式,用于在不同的应用程序之间传输数据。本文就来一起学习一下基本的知识,什么是XML?XML和JSON有什么区别?相互之间如何转换?前面有介绍JavaScript和JSON之间的关系


数据结构类型


  • 结构化数据:有时它也被称为关系数据,因为数据共享相同的格式和行和列的模式。结构化查询语言 (SQL) 用于通过简单查询查找数据。
  • 半结构化数据:在这种类型中,数据不相关,因为它们不存储在行和列模式中。数据使用标记、缩进或冒号作为组织中数据层次结构的键值对。在这里,数据序列化起着重要作用,以便开发人员以可以传输给另一个开发人员/机器的格式制作数据。
  • 非结构化数据:此类数据为无法以正确格式定义的照片、音频、日志文件和视频。与它们相关的元数据被认为是半结构化的,但作为一个整体数据是非结构化的


什么是XML


XML(Extensible Markup Language)是一种标记语言,它类似于 HTML,但是更加灵活,可以自定义标签。XML 的设计目标是传输数据,而不是展示数据。XML 语言具有良好的可扩展性,可以被用于表示和传递任何类型的数据,过去在 Web 开发中被广泛使用。XML 被设计为具有自我描述性,可扩展性和可移植性。


什么是JSON


JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,是 JavaScript 中的一种对象表示方法。JSON格式的数据通常用于异步浏览器/服务器之间的数据交换,可以被各种编程语言解析和生成。

JSON数据格式和JavaScript中的对象字面量有些相似,在JSON中,所有的属性名都必须用双引号包围,而JavaScript中则可以使用单引号或不用引号。此外,JSON中不支持函数类型和变量类型,只支持基本数据类型和数组、对象这两种复合数据类型。JSON还有一些其他规范,如不能包含特殊的控制字符,属性名必须是字符串,不支持注释等。


XML 和 JSON 区别


XML 和 JSON 是两种常见的数据交换格式,主要有以下区别:

  1. 数据格式:XML 采用标签格式,JSON 采用键值对格式。
  2. 可读性:JSON 相对于 XML 更易于阅读和理解。
  3. 数据量:由于 XML 中包含很多标签,因此比 JSON 占用更多的空间,数据量更大。
  4. 解析速度:由于 JSON 的数据格式较为简单,因此解析速度比 XML 快。
  5. 数据类型:XML 可以表示任何数据类型,而 JSON 只支持少数数据类型,如字符串、数字、布尔值、数组和对象。
  6. 编码方式:XML 使用 UTF-8 编码方式,JSON 使用 UTF-8UTF-16 编码方式。

JSON 是在 XML 之后开发的,但随着时间的推移变得越来越流行。这两种格式经常用于通过 Web API 发送数据


XML 和 JSON 相互转换


了解了 XML 和 JSON 格式后,对于转换可以借助第三方插件 xml-jsxml2json

const convert = require("xml-js");
const xmlString = `
  <bookstore>
    <book category="javascript">
      <title>JavaScript: The Definitive Guide, Seventh Edition</title>
      <author>David Flanagan</author>
      <price>95.90</price>
    </book>
    <book category="typescript">
      <title>TypeScript入门与实战</title>
      <author>钟胜平</author>
      <price>49.50</price>
    </book>
  </bookstore>
`;
const json = convert.xml2json(xmlString, { compact: true, spaces: 4 });
console.log(json);
const options = { compact: true, ignoreComment: true, spaces: 4 };
const result = convert.json2xml(json, options);
console.log(result);


不同编程语言的处理方法


  • Python:在 python 中,序列化由 pickle 模块完成,并且只能使用基于 python 的语言进行反序列化。
  • Java:它在内部处理那些标记为 java.io.Serializable 的对象/类的序列化。
  • Javascript:它使用内部内置方法 JSON.parse() 等。
  • .Net:它使用三种序列化方法,即 JSONBinaryXML
  • PHP:该语言使用内置方法进行序列化和反序列化,即 serialize()deserialize()


总结


文件格式和数据类型对于了解和在不同操作中使用以减少应用程序中的延迟非常重要。


相关文章
|
3月前
|
XML 存储 JSON
Python学习 -- 常用数据交换格式(CSV、XML、JSON)
Python学习 -- 常用数据交换格式(CSV、XML、JSON)
31 0
|
3月前
|
XML JSON 数据格式
xml与JSON的区别
xml与JSON的区别
30 1
|
2月前
|
XML 机器学习/深度学习 JSON
在火狐浏览器调ajax获取json数据时,控制台提示“XML 解析错误:格式不佳”。
在火狐浏览器调ajax获取json数据时,控制台提示“XML 解析错误:格式不佳”。
29 0
在火狐浏览器调ajax获取json数据时,控制台提示“XML 解析错误:格式不佳”。
|
1天前
|
XML JSON 中间件
中间件数据格式JSON与XML之间的转换
中间件数据格式JSON与XML之间的转换
9 3
|
18天前
|
XML JSON JavaScript
Java中XML和JSON的比较与应用指南
本文对比了Java中XML和JSON的使用,XML以自我描述性和可扩展性著称,适合结构复杂、需验证的场景,但语法冗长。JSON结构简洁,适用于轻量级数据交换,但不支持命名空间。在Java中,处理XML可使用DOM、SAX解析器或XPath,而JSON可借助GSON、Jackson库。根据需求选择合适格式,注意安全、性能和可读性。
27 0
|
24天前
|
XML JSON JavaScript
使用JSON和XML:数据交换格式在Java Web开发中的应用
【4月更文挑战第3天】本文比较了JSON和XML在Java Web开发中的应用。JSON是一种轻量级、易读的数据交换格式,适合快速解析和节省空间,常用于API和Web服务。XML则提供更强的灵活性和数据描述能力,适合复杂数据结构。Java有Jackson和Gson等库处理JSON,JAXB和DOM/SAX处理XML。选择格式需根据应用场景和需求。
|
3月前
|
XML 存储 JSON
详细比较JSON和XML这两种数据格式
详细比较JSON和XML这两种数据格式
109 2
|
4月前
|
XML 存储 JSON
实现XML与JSON转换,实测这个方法最便捷
XML和JSON是当今最常用的两种数据格式,在数据交换和存储领域占有重要地位。XML以其树状结构和可扩展性被广泛使用,而JSON则以其轻量级和易读性受到开发者的青睐。有时候,为了更好地利用它们的优点解决数据共享、数据处理和数据存储等问题,我们需要将这两种格式进行转换。本文将介绍如何使用Java实现将XML格式转换成JSON格式。
|
4月前
|
XML 存储 JSON
C# 对象存储 (轻松实现序列化 | Xml | Json | 加密 | 压缩 | 注册表 | Redis)
开发时经常会遇到需要保存配置的情况,最常见的实现方式是将对象序列化成Json,再写入文件并保存到本地磁盘。 本文将使用开源库**ApeFree.DataStore**来替换原有的对象存储过程,实现一个可以随意切换存储方式的对象存储方法。 ApeFree.DataStore是一款可配置的对象存储库,支持在不同平台/介质中对内存中的对象进行存储与还原(如本地存储、注册表存储)。支持配置序列化格式(如Json、Xml),支持配置压缩算法(如GZip、Defalte),支持配置加密算法(如AES、RSA)。
68 0
C# 对象存储 (轻松实现序列化 | Xml | Json | 加密 | 压缩 | 注册表 | Redis)