1.JavaScript Object Notation(JSON)

JSON是一种轻量级数据交换格式,广泛用作通用格式,用于序列化和反序列化通过Internet相互通信的应用程序中的数据。这些应用程序通常使用不同的编程语言创建,并在不同的环境中运行。JSON适用于这种情况,因为它是一个开放标准,易于读写,并且比其他表示更紧凑。RESTful Web服务通常广泛使用JSON作为请求和响应中的数据格式,JSON表示通常比对应的XML表示更紧凑,因为JSON没有结束标记。

为了生成和解析JSON数据,有两种编程模型,类似于用于XML文档的编程模型(processing model):

  • 对象模型(object model)

    对象模型创建一个代表内存中的JSON数据的树。然后可以导航和分析树。尽管在内存中创建的JSON数据是不可变的且无法修改,但对象模型是最灵活的,并且允许进行需要访问树的完整内容的处理。但是,它通常比流模型慢,需要更多内存。对象模型通过一次导航整个树来生成JSON输出
  • 流模型(streaming model)

    流模型使用基于事件的解析器,一次读取JSON数据的一个元素。当对象或数组开始或结束,找到键或找到值时,解析器生成事件并停止处理。应用程序代码可以处理或丢弃每个元素,然后解析器继续执行下一个事件。这种方法适用于本地处理,其中元素的处理不需要来自其余数据的信息。流模型通过一次使用一个元素进行函数调用来生成给定流的JSON输出。

2.XML 处理模型(XML Processing Model, XProc)

XML 处理模型(XML Processing Model, XProc)语言可以编制在处理 XML 时可结合使用的各种操作,在Java中,XML通过两种不同的API来处理:XML的简单API(SAX)和文档对象模型(DOM)

  • SAX

    SAX是一个基于事件的** API,这意味着它会在解析XML文件时将结果报告给应用程序(或回调)。从概念上讲,SAX解析器从文件的开头开始将XML文件分成多个部分,在解析完每个部分后通知应用程序。这与DOM不同,DOM完全解析XML文件,然后为您的应用程序提供完整的节点树。SAX使您的应用程序有机会在解析过程中仅存储所需的信息并丢弃其余信息。
  • DOM

    文档对象模型(DOM)是用于读取和操作XML数据的W3C标准。与SAX一样,您可以从DOM的各种解析器实现中选择(使用相应的API)。无论您选择哪种DOM解析器,DOM都会将XML文档显示为节点树,其中每个节点都表示元素,属性或文本数据。DOM创建的树结构将始终对应于用于解析的XML文档的层次结构。根元素(或节点)位于树的第一级,其子级位于下一级,依此类推。DOM提供对这些节点中的任何节点的随机访问,这意味着您可以随时读取或更改文档的任何部分。

3.Between JSON and XML

  • XML比JSON更加冗长编写起来JSON更加便捷
  • XML用于描述结构化数据,不包括数组,而JSON包含数组。
  • JavaScript的eval方法解析JSON。应用于JSON时,eval返回描述的对象。

JSON

{
"company": Volkswagen,
"name": "Vento",
"price": 800000
}

XML

<car>
<company>Volkswagen</company>
<name>Vento</name>
<price>800000</price>
</car>

参考连接

https://docs.microsoft.com/en-us/previous-versions/dotnet/articles/aa478996(v=msdn.10)

https://docs.oracle.com/middleware/1213/wls/WLPRG/java-api-for-json-proc.htm

json/xml processing model与xml和json的简要区别的更多相关文章

  1. analysed of J-SON/XML processing model Extend to java design model (J-SON/XML处理模型分析 扩展到Java设计模型 )

    一.JSON和XML 1.JSON JSON(JavaScript Object Notation)一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性.可在不同平台之间进行数据交换.JSON ...

  2. JSON 序列化与反序列化, 与XML相互转换.

    方式一: 使用于 JavaScriptSerializer类 适用于普通场景, Excel导入导出, 前台传输查询参数直接处理等. JavaScriptSerializer serializer = ...

  3. 将XML文件中的内容转换为Json对象

    using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Xml;u ...

  4. xml学习篇(二) ----JSON 和XML对比

    在比较JSON和XML之前,我们先来上一堂关于数据格式的简要历史(更准确的说,是关于XML的始祖): 早在1970年,IBM开发了一种叫Generalized Markup Language的标记语言 ...

  5. 如何使用Google APIs和Google应用系统集成(7)----在里面JSON兑换XML数据处理,JSON数据包括违规XML数据规范:XML节点名称不支持号码Java解

    笔者电话Google Calendar APIs的GetColors方法,其中(有关详细信息Google Calendar API已经Google API看到我的博文介绍的其余部分,目前,我们只取Go ...

  6. WEB安全第五篇--其他注入的奇技淫巧:XML注入、Xpath注入、Json注入、CRLF注入

    零.前言 最近做专心web安全有一段时间了,但是目测后面的活会有些复杂,涉及到更多的中间件.底层安全.漏洞研究与安全建设等越来越复杂的东东,所以在这里想写一个系列关于web安全基础以及一些讨巧的pay ...

  7. JSON 为王,为什么 XML 会慢慢淡出人们的视野?

    目前全球信息基础设施的特点是,拥有大量的数据交换格式.这一点也不奇怪.互联网几乎已经老了,而“物联网”及“大数据”正从概念走进现实.但我仍然相信,在这一领域还有一股较强的历史趋势,推动 JSON 数据 ...

  8. Python模块:shutil、序列化(json&pickle&shelve)、xml

    shutil模块: 高级的 文件.文件夹.压缩包 处理模块 shutil.copyfileobj(fscr,fdst [, length])   # 将文件内容拷贝到另一个文件中 import shu ...

  9. .net core将URL请求格式化为XML或JSON(网站动态生成sitemap.xml)

    .net core将URL请求格式化为XML或JSON(网站动态生成sitemap.xml) 首先设置 Startup.cs 文件 配置 ConfigureServices services .Add ...

随机推荐

  1. 【MySQL参数优化】根据架构优化

    根据MySQL的架构优化 参数调整的最终效果: 1)SQL执行速度足够快 2)业务吞吐量足够高:TPS,QPS 3)系统负载可控,合理:cpu,io负载 在调整参数的时候,应该熟悉mysql的体系架构 ...

  2. Pmw大控件

    Python大控件——Pmw——是合成的控件,以Tkinter控件为基类,是完全在Python内写的.它们可以很方便地增加功能性的应用,而不必写一堆代码.特别是,组合框和内部确认计划的输入字段放在一起 ...

  3. 利用FastJson,拼接复杂嵌套json数据&&直接从json字符串中(不依赖实体类)解析出键值对

    1.拼接复杂嵌套json FastJson工具包中有两主要的类: JSONObject和JSONArray ,前者表示json对象,后者表示json数组.他们两者都能添加Object类型的对象,但是J ...

  4. 2×c列联表|多组比例简式|卡方检验|χ2检验与连续型资料假设检验

    第四章 χ2检验 χ2检验与连续型资料假设检验的区别? 卡方检验的假设检验是什么? 理论值等于实际值 何条件下卡方检验的需要矫正?如何矫正? 卡方检验的自由度如何计算? Df=k-1而不是n-1 卡方 ...

  5. memcached redis 本质区别是功能多少

    功能: 1.memcached 数据类型比较单一,数据淘汰策略单一,功能简单 2.redis 数据类型比较全面, 数据淘汰策略比较多,功能较强 有持久化能力,可以持久存储少量数据(数据量不会大于本机内 ...

  6. java中常见的json解析方法、库以及性能对比

    常见的json解析有原生的JSONObject和JSONArray方法,谷歌的GSON库,阿里的fastjson,还有jackson,json-lib. Gson(项目地址:https://githu ...

  7. BBS注册功能

    BBS注册功能 一.后端 1.组件校验数据 """ @author RansySun @create 2019-11-03-11:35 """ ...

  8. goweb-web服务

    Web服务 Web服务可以让你在HTTP协议的基础上通过XML或者JSON来交换信息.如果你想知道上海的天气预报.中国石油的股价或者淘宝商家的一个商品信息,你可以编写一段简短的代码,通过抓取这些信息然 ...

  9. Huffman编码实验

    一. 实验目的 熟练掌握哈夫曼树的建立和哈夫曼编码的算法实现. 二. 实验内容 根据哈夫曼编码的原理,编写一个程序,在用户输入结点权值的基础上求赫夫曼编码,并能把给定的编码进行译码. 三. 实验要求 ...

  10. 使用DataSnap Server环境搭建注意的问题。

    1.Data exploer 的MYSQL文件(Libmysql.dll)放到系统的system32目录即可