JSON解析与 XML解析的区别比较

Android网络请求,获取数据demo,几种网络请求的区别,JSON 与 XML 的区别、优劣势 SAX是一个用于处理XML事件驱动的“推”模型,优点是一种解析速度快并且占用内存少的xml解析器,它需要哪些数据再加载和解析哪些内容。缺点是它不会记录标签的关系,而要让你的应用程序自己处理,这样就增加了你程序的负担。 DOM是一种文档对象模型,DOM可以以一种独立于平台和语言的方式访问和修改一个文档的内容和结构。 **优点:**Dom技术使得用户页面可以动态地变化,如可以动态地显示或隐藏一... 阅读详情

一.定义介绍

 (1).XML 定义

扩展标记语言(Extensible Markup Language, XML), 用于标记电子文件使其具有结构性的标记语言, 可以用来标记数据,定义数据类型, 是一种允许用户对自己的标记语言进行定义的源语言. XML使用 DTD(document type defintion文档类型定义来组织数据,格式统一,跨平台和语言,早已成为业界公认的标准.

XML 是标准通用标记语言(SGML) 的子集, 非常合适 Web 传输. XML提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据.


(2) JSON 定义

JSON(javaScript Object Notation) 一种轻量级的数据交换合适,具有良好的可读和便于快速编写的特性. 可在不同平台之间进行数据交换. JSON 采用兼容性很高的,完全独立于语言文本格式, 同时也具备类似于 C语言的习惯(包括 C, C++, C#, Java, JavaScript, Perl, Python等)体系的行为. 这些特性使 JSON 成为理想的数据交换语言.

JSON 基于 JavaScript Programming Language, Standard ECMA - 262 3rd Edition - December 1999 的一个子集.


二. XML和JSON优缺点

1.XML 的优缺点

(1).XML 的优点:

a.格式统一,符合标准

b.容易与其他系统进行远程交互,数据共享比较方便

(2).XML 的缺点:

a.XML文件庞大, 文件格式复杂,传输占带宽;

b.服务器端和客户端都需要花费大量代码来解析 XML, 导致服务器端和客户端代码变得异常复杂且不易维护;

c.客户端不同浏览器之间解析 XML的方式不一致,需要重复编写很多代码;

d.服务器端和客户端解析 XML花费较多的资源和时间.


2.JSON 的优缺点

(1).JSON 的有点:

a.数据格式比较简单, 易于读写, 格式都是压缩的, 占用带宽小;

b.易于解析, 客户端 JavaScript 可以简单的通过 eval()进行 JSON数据的读取;

c.支持多种语言,包括ActionScript, C, C#, ColdFusion, Java, JavaScript, Perl, PHP, Python, Ruby等服务器端语言,便于服务器端的解析;

d.在 PHP 世界, 已经有 PHP - JSON 和 JSON-PHP出现了,偏于 PHP 序列化后的程序直接调用, PHP 服务器端的对象,数据等能直接生成 JSON格式,便于客户端的访问提取;

e.因为 JSON 格式能直接为服务器端代码使用,大大简化了服务器端和客户端的代码开发量, 切完成任务不变,并且易于维护.

(2).JSON 的缺点:

a.没有 XML 格式这么推广的深入人心和使用广泛, 没有 XML那么通用型;

b.JSON 格式目前在 web service 中推广还属于初级阶段.


三.XML 和 JSON 的优缺点比较

1.可读性方面

JSON和 XML的数据可读性基本相同, JSON 和 XML 的可读性可谓不相上下, 一边是建议的语法,一边是规范的标签形式, XML可读性较好些;

2.可扩展性方面

XML天生有很好的扩展性, JSON 当然也有,没有什么是 XML 能扩展的, JSON 不能的;

3.编码难度方面

XML有丰富的编码工具,比如Dom4j、JDom等,JSON也有json.org提供的工具,但是JSON的编码明显比XML容易许多,即使不借助工具也能写出JSON的代码,可是要写好XML就不太容易了。

4.解码难度方面

XML 的解析需要考虑子节点父节点,让人头昏眼花,而 JSON的解析难度几乎为0.

5.流行度方面

XML 已经被业界广泛的使用,而 JSON 才刚刚开始,但是在 Ajax 这个特定的领域,未来的发展一定是 XML让位于 JSON. 倒是 Ajax应该变成 Ajaj(Asynchronous Jacascript and JSON)了.

6.解析手段方面

JSON 和 XML 同样拥有丰富的解析手段

7.数据体积方面

JSON 相对于 XML来讲,数据的体积小,传递的速度更快些.

8.数据交互方面

JSON 与 JavaScript 的交互更加方便, 更容易解析处理,更好的数据交互

9.数据描述方面

JSON 对数据的描述性比 XML较差

10.传输速度方面

JSON 的速度要远远快于 XML.


四. XML 与 JSON 数据格式比较

1.关于轻量级和重量级

轻量级和重量级是相对来说的,主要体现在解析上 XML 目前设计了两种解析方式:DOM 和 SAX.

(1).DOM 解析

DOM 是把一个数据交换格式 XML 看成一个DOM 对象,需要把 XML 文件整个读入内存,这一点上 JSON 和 XML 的原理是一样的,但是 XML 要 考虑父节点和子节点,这一点上 JSON 解析难度要小很多,因为 JSON 构建于两种结构: key/value ,键值对的集合;值的有序集合,可理解为数组.

(2).SAX 解析

SAX 不需要整个读入文档就可以对解析出的内容进行处理,是一种逐步解析的方法.程序也可以随时终止解析,这样,一个大的文档就可以逐步的,一点一点的展现出来,所以 SAX 适合于大规模的解析.这一点, JSON 目前是做不到的.

所以, JSON 和 XML 的轻/重量级的区别在于:

①.JSON 只提供整体解析方案,而这种方法只在解析较少的数据时才能起到良好的效果;

②.XML 提供了对大规模数据的逐步解析方案,这种方案很适合于对大量数据的处理;

2.关于数据格式编码及解析难度

(1).在编码方面

虽然 XML 和 JSON 都有各自的编码工具,但是 JSON 的编码要比 XML 简单,即使不借助工具,也可以写出 JSON 代码,但是写出好的 XML 代码就有点困难;与 XML 一样, JSON 也是基于文本的,且他们都使用 Unicode 编码,且其与数据交换格式 XML 一样具有可读性.

主观上来看, JSON 更为清晰且冗余的更少些.JSON 网站提供了对 JSON 语法的严格描述,只是描述较剪短.从总体来看, XML 比较适合于标记文档,而 JSON 却更适合于进行数据交换处理.

(2).在解析方面

在普通的web应用领域,开发者经常为XML的解析伤脑筋,无论是服务器端生成或处理XML,还是客户端用 JavaScript 解析XML,都常常导致复杂的代码,极低的开发效率。
实际上,对于大多数Web应用来说,他们根本不需要复杂的XML来传输数据,XML宣称的扩展性在此就很少具有优势,许多Ajax应用甚至直接返回HTML片段来构建动态Web页面。和返回XML并解析它相比,返回HTML片段大大降低了系统的复杂性,但同时缺少了一定的灵活性。同XML或 HTML片段相比,数据交换格式JSON 提供了更好的简单性和灵活性。在Web Serivice应用中,至少就目前来说XML仍有不可动摇的地位。

(3).实例比较

XML和JSON 都使用结构化方法来标记数据,下面来做一个简单的比较.

①.用 XML 表示中国部分省市如下

<?xml version="1.0" encoding="utf-8" ?>
<country>
  <name>中国</name>
  <province>
    <name>黑龙江</name>
    <citys>
      <city>哈尔滨</city>
      <city>大庆</city>
    </citys>    
  </province>
  <province>
    <name>广东</name>
    <citys>
      <city>广州</city>
      <city>深圳</city>
      <city>珠海</city>
    </citys>   
  </province>
  <province>
    <name>台湾</name>
    <citys>
       <city>台北</city>
       <city>高雄</city>
    </citys> 
  </province>
  <province>
    <name>新疆</name>
    <citys>
      <city>乌鲁木齐</city>
    </citys>
  </province>
</country>

②.用 JSON 表示中国部分省市数据如下

var country =
        {
            name: "中国",
            provinces: [
            { name: "黑龙江", citys: { city: ["哈尔滨", "大庆"]} },
            { name: "广东", citys: { city: ["广州", "深圳", "珠海"]} },
            { name: "台湾", citys: { city: ["台北", "高雄"]} },
            { name: "新疆", citys: { city: ["乌鲁木齐"]} }
            ]
        }


编码的可读性来说,XML 有明显的优势,毕竟人类的语言更贴近这样的说明结构.JOSN 读起来更像一个数据块,读起来就比较费解了.不过,我们读起来费解的语句,恰恰是适合机器阅读,所以通过 JSON 的索引 country,provinces[0].name 就能够读取"黑龙江"这个值.

编码的手写难度来说, XML 还是舒服一些,好读当然就好写.不过写出来的字符 JSON 就明显少很多.去掉空白制表以及换行的话, JSON 就是密密麻麻的有用数据,而 XML 却包含很多重复的标记字符.


JSON与XML的对比以及JSON原理详解 文章通过对JSON和XML进行比对,分析两者之间的差异优劣,各自凸显优势 立即下载

相关推荐

JSON和XML解析的Demo

本项目,集合了Json和XM的数据解析方法,介绍了两种Json解析和两种xml解析。代码结构清晰。 JSON:Android自带Json解析,Gson。 XML:XmlPullPaser,SAXPaser。

XML与Json解析

XML解析 解析网络xml文件:这里我们提供一个网址: 在浏览器中粘贴此网址,将“+phone+”换成手机号即可得到一个xml文件。"http://apis.juhe.cn/mobile/get%20phone="+phone+"&dtype=xml&key=9f3923e8f87f1ea50ed4ec8c39cc9253" 一、DOM4J解析XML文件步骤: 1. 引入jar文件 dom4j.jar 2. 创建一个指向XML文件的输入流 FileInputStream...

m0_60563771的博客 1042

基于RK3588与FPGA的SDI视频处理系统:从MIPI CSI-2输入到DSI输出的全链路解析

本文深入解析了基于RK3588与FPGA的SDI视频处理系统全链路。系统利用FPGA作为高速接口转换与流管理核心,将SDI信号转换为MIPI CSI-2数据流送入RK3588进行智能图像处理与AI分析,处理结果再通过MIPI DSI回传,最终由FPGA控制编码为SDI输出,实现了专业视频接口与强大算力的高效协同。

s1t2u3的博客 672

JSON解析,XML解析

JSON解析 1大括号代表字典 2中括号(小括号)代表数组 3冒号的左右两边分别为键和值(key:value) 4数据和数据之间用逗号隔开 我们在本机上创建一个file.xml,进行解析,并取出年龄35 //JSON解析    本地读取student.xml文件     NSString *jstr=[NSString stringWithContentsOfFil

755

硬件测试之—纹波测试为什么不要使用接地夹子

示波器为什么不推荐使用接地夹

qq_19294353的博客 2989

东方财富网股票API逆向分析:手把手教你破解动态参数(2024最新版)

本文详细解析了2024年东方财富网股票API的动态参数生成机制,包括回调函数、身份验证和时效控制参数的逆向工程方法。通过实战代码演示,帮助开发者破解动态参数,实现高效稳定的股票数据爬取,适用于金融数据分析和量化交易场景。

weixin_29091105的博客 1026

XML语言与JSON

关于XML语言与JSON1.什么是XML2.XML的作用3.什么是XML文件XML语法1.XML文档声明2.标记(元素/标签/节点)3.一个XM文档只能有一个最外层标记(根标记)4.标记可以嵌套,不能交叉5.标记的层级称呼(子标记,父标记,兄都标记,后代标记,祖先标记)6.标记名称可以重复7.标记除了开始和结束,还有属性8.注释Java中XML解析1.java中XML有四种解析方式a.SAX解析b.DOM解析3. JDOM解析4.DOM4J解析2.DOM4J解析XML 掌握3.文档对象 Document4.

qq_45551151的博客 221

VMware虚拟机安装MS-DOS 7.10教程

dos安装教程dos版本7.10附下载链接。

Minecraft_xiaole的博客 1万+

JSON与XML的区别是什么?

(1)XML定义扩展标记语言(Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。XML使用DTD(document type definition)文档类型定义来组织数据;格式统一,跨平台和语言,早已成为业界公认的标准XML是标准通用标记语言(SGML)的子集,非常适合Web传输。XML提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。(2)JSON定义 J

zy1992As的博客 1万+

2025使用VM虚拟机安装配置Macos苹果系统下Flutter开发环境保姆级教程--下篇

我们可以看到,目前配置基本完成了,现在有两个错,一个是Chrome没安装,这个自己安装就可以了,如果不需要WEB测试也不影响开发,另一个是Simulator还没安装,这个主要是安装的时间太长了,也就是上面的这一步。这里要注意,这个下载安装会比较慢,有的载会特别卡造成安装失败,最好的办法是挂一个VPN,保证安装完成,不过这个可以在以后单独进行安装。至此,基本的安装完毕,好多人会以为Xcode就OK了,其实还没有,我们还缺少命令行工具包,这个在安装完Flutter以后进行设置。

weixin_48803304的博客 1412

VCSA 上的 vmware-vpxd 服务失败,Web端提示503 服务不可用 (503 Service Unavailable)

昨晚VCSA碰到一个很诡异的问题: 使用 vSphere Web Client 连接到 vCenter Server Appliance时失败,提示: 503 服务不可用 (503 Service Unavailable) 无法连接端点 (Failed to connect to endpoint):[N7Vmacore4Http20NamedPipeServiceSpecE:0x00007f975808ee30] _serverNamespace = / action = Allow _pipeNam

徐华的博客 2万+

数据解析(JSON、XML)详解 适合初学者

X(extensible:可扩展的)M(markup:标记)L(language:语言)把上面每个单词翻译过来就是可扩展的标记语言,学过HTML的一定知道HTML就是超文本标记语言,它主要的目的就是制作网页。将信息显示在网页上,而XML的宗旨在于传输信息。存储数据:IO流和数据库也能存储数据,但是IO流读写数据的速率较低,而数据库所占用的空间很大,比如说一些单机游戏就不适合用数据库,这时候就能体现出XML的优越性。传输数据:将数据写在XML文件中,通过网络传输给其他PC或者传输给后台或者前台。

qq_51546137的博客 3483

QGIS之二十六pbf转osm转shp

QGIS之二十六pbf转osm转shp

yilvyangguang520的博客 7500

Json与XML解析的区别比较

JSON与XML的区别比较 1.定义介绍 (1).XML定义 扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 XML使用DTD(document type definition)文档类型定义来组织数据;格式统一,跨平台

yanlei_cs的博客 704

轨道平面系与轨道姿态系

文章摘要: 轨道平面系与轨道姿态系是航天任务中两个核心坐标系。轨道平面系(惯性系)以地心为原点,Z轴沿轨道角动量方向,用于轨道确定和机动规划;轨道姿态系(如LVLH系)以航天器质心为原点,Z轴指向地心,用于姿态控制和对地观测。两者通过旋转矩阵相互转换:轨道平面系基于轨道根数构建,保持静态;而LVLH系随轨道运动连续旋转。前者适用于全局轨道分析,后者支撑局部任务执行。理解二者的定义差异(原点、基准轴、惯性属性)及数学转换关系,对航天器姿态轨道控制系统的设计与操作至关重要。

ScilogyHunter的博客 89

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

JSON与XML的区别比较以及xml两种解析方式的比较

JSON与XML的区别比较 1.定义介绍 (1).XML定义 扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 XML使用DTD(document type definition)文档类型定义来组织数据;格式统一,跨平台

dadaxiongdebaobao的博客 736

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

java xml中相同的子级父级节点怎么解析_关于JSON与XML的区别比较

现在互联网上,最流行的两大传输数据的标准就是json和XML了,关于谁是最好的,一直以来都是人们争论的话题,其实各有各的缺点和优点;1.定义介绍(1).XML定义扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 XML使用DTD(docume...

weixin_30989967的博客 565

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

JSON和XML的区别比较详解

JSON与XML的区别比较 JSON与XML的诞生 说到xlm的诞生就不得不说一下“标准通用标记语言SGML(Standerd Generalized Markup Language)” 一,SGML 说到XML的诞生就不得不说一下“标准通用标记语言SGML(Standerd Generalized Markup Language)” 一个SGML语言由三部分组成:SGML语法定义;DTD文件类型...

kiku 1290

如何理解html,xml,json作用

如何理解html,xml,json的作用 首先,先简单的提及一下超文本标记语言HTML(HyperText Markup Language)。对于HTML语言,大家一定不陌生,没吃过猪肉,可总见过猪跑吧。 超文本标记语言HTML是为“网页创建和其它可在网页浏览器中看到的信息”设计的一种标记语言。“超文本”就是指页面内可以包含图片、链接,甚至音乐、程序等非文字元素。“标记”是指计算机所能理解的信息符号

wangliyi111的博客 863

Qt第十八章 XML和Json格式解析

可扩展标记语言,标准通用标记语言的子集,简称XML,是一种定义电子文档结构和描述其内容的国际标准语言,被设计用咯爱传输和存储数据。XML的易于在任何应用程序中读写数据,这使XML很快成为数据交换的唯一公共语言,虽然不同的应用软件也支持其他的数据交换格式,但不久之后它们都将支持XML,那就意味着程序可以更容易的与Winows、Mac Os、Linux以及其他平台下产生的信息结合,然后可以很容易加载XML数据到程序中并分析它,并以XML格式输出结果。

yerennuo的博客 1062

android 封装解析json数据类型,android中的JSON解析

一。什么是JSON:1.JSON:Javascript Object Nation2.JSON是一系列键值对的集合3.JSON以经被大多数开发人员接受,在网络数据传输中应用相当广泛4.JSON相对XML来说解析相对方便一些二。JSON 与 XML 相比:1.JSON和XML的数据可读性基本相同2.JSON和XML同样拥有丰富的解析手段3.JSON相对于XML来讲,数据的体积小4.JSON与Java...

weixin_42347535的博客 569

android json解析及简单例子

JSON的定义: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。业内主流技术为其提供了完整的解决方案(有点类似于正则表达式,获得了当今大部分语言的支持),从而可以在不同平台间进行数据交换。JSON采用兼容性很高的文本...

chonglilong2976的博客 112

JSON and XML对比

JSON and XML对比 JSON实例: {"peoples":[ {"name":"张三","sex":"男"} {"name":"李四","sex":"女"} {"name":"王五","sex":"男"} ] } XML实例: <peoples> <people> <name>张三</name><sex>男</sex> </people> <people> <name>李四</nam

fightinguser的博客 165

探究JSON和XML:两种常见的数据交换格式之异同

在软件开发和数据交换领域,JSON(JavaScript Object Notation)和XML(eXtensible Markup Language)是两种广泛使用的数据交换格式。它们都具有将数据结构化并在不同系统之间进行传输和解析的能力,但在实际应用中却存在一些显著的差异。本文将深入探讨JSON和XML之间的异同,以帮助读者更好地理解它们各自的特点和适用场景。

记录个人成长, 分享好用资源 994

Java八股文(XML)

xml配置文件

qq_63635361的博客 910

JSON和XML学习笔记

JSON全称JavaScript Object Notation,即JS 对象标记法,JSON不仅限于使用在JS中,是现代开发最广泛使用的数据交换格式。json是一种轻量级的纯文本数据交换格式。“轻量级”是指JSON表示数据所需的额外开销较少,数据传输效率更高。比如JSON通过规定字符集(unicode)、默认字符编码(utf-8)和解析嗅探(因为第一个字符是或,可以嗅探编码)等方式,相比xml来说不需要头部声明。除此之外,JSON键值对方式表示数据,相对xml需要闭合标签,内容更简洁。

qq_17862337的博客 1513
上一篇: iOS 数据存储方式(XML属性列表-归档)
下一篇: 发送GET和POST请求(使用NSURLSession)
markWX
博客等级 码龄11年 3粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值