0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

JSON将替代XML?绝对不可能!

jf_ro2CN3Fa 来源:麦叔编程 2023-07-07 10:28 次阅读

虽然 JSON 格式很香,在当今应用也很普及,但是说能替代 XML 格式,我觉得有点不太现实。

779148c8-1c66-11ee-962d-dac502259ad0.png

JSON vs XML

JSON 的优势

易于读写:JSON 使用简单的键值对结构 ,相比于 XML 的繁琐的标记,更加易于阅读和编写。

较小的文件大小:相比于 XML,JSON 的文件大小通常更小,这意味着更快的传输速度和更少的网络带宽占用。

更好的性能:JSON 的解析和生成速度通常比 XML 更快 ,这使得它在大数据量和高并发访问的场景下表现更好。

易于使用:JSON 支持几乎所有的编程语言,并且可以通过 JavaScript 内置的 JSON.parse() 和 JSON.stringify() 方法轻松地进行序列化和反序列化操作。

支持复杂数据类型:JSON 支持对象、数组、字符串、数字、布尔和 null 等复杂的数据类型,因此适用于各种类型的应用程序。

XML 的优势

可读性也很强:由于 XML 具有良好的标签结构 ,因此在阅读和编辑方面具有很高的可读性。它具有丰富的语法和标记,可以更清晰地表示数据结构。

JSON 和 XML 的可读性可谓不相上下,一边是建议的语法,一边是规范的标签形式。(萝卜青菜各有所爱)

更加灵活:XML 可以使用 DTD、Schema 等技术进行验证 ,具有更强的数据校验和数据描述能力。而且 XML 中的数据可以自定义标记 ,可以根据需要进行灵活地扩展和修改。

支持命名空间:XML 可以使用命名空间机制来避免元素和属性名的冲突。这在一些复杂的数据结构中非常有用。

更加通用:虽然 JSON 是 JavaScript 对象表示法的缩写,但是 XML 不依赖于任何语言或平台,因此可以跨语言和跨平台使用,具有更广泛的应用范围。

同一数据的不同格式表示法

JSON:

{
"product":{
"id":"12345",
"name":"iPhone13",
"price":999.00,
"description":"ThelatestiPhonemodelfromApple",
"colors":["Silver","Gold","Graphite","Blue","Red"],
"specs":{
"display":"6.1-inchSuperRetinaXDRdisplay",
"processor":"A15Bionicchip",
"camera":"Dual-camerasystemwith12MPUltraWideandWidecameras"
}
}
}

XML:


12345
iPhone13
999.00
ThelatestiPhonemodelfromApple

Silver
Gold
Graphite
Blue
Red


6.1-inchSuperRetinaXDRdisplay
A15Bionicchip
Dual-camerasystemwith12MPUltraWideandWidecameras


从上面的示例数据中我们可以很容易地发现 JSON 的优点,例如:JSON 比 XML 要简洁不少,这就意味着更快的数据解析、传递和储存。

但 XML 肯定也有自己的两把刷子,要不然早就被 JSON 按在地上摩擦了。

XML 格式无法替代的优点

数据描述能力:相对于 JSON,XML 具有更强的数据描述能力,能够描述更为复杂的数据结构,例如嵌套的表格、树形结构等。同时,XML 还支持 DTD 和 XML Schema 等工具,可以对数据进行严格的验证和约束,保证数据的完整性和正确性。

文档处理能力:XML 本身就是一种标记语言,适合用于描述和处理文档类型的数据。在一些场景下,例如在线编辑器、电子书、电子期刊等,XML 仍然是比较合适的数据格式。

网页转 word 格式文件,就是利用 xml 的这个能力。

命名空间:XML 具有命名空间机制,可以避免元素和属性名称的冲突,保证数据的唯一性和准确性。在一些领域,例如复杂的数据交换协议、标准化的数据格式等,命名空间机制具有很高的实用价值。

例如,我们可以为每个公司定义一个命名空间,例如 "company1" 和 "company2",然后在 XML 文档中使用命名空间前缀来区分元素的名称。例如,公司1的员工信息可以使用 "company1:name" 来表示员工姓名,公司2的员工信息可以使用 "company2:name" 来表示员工姓名。这样就能保证在不同的文档中,元素名称不会冲突。



John
30


Jane
25


最后

尽管在 Web 开发和移动应用开发,JSON 的特点使得它是一种更为常用的数据格式。

但存在即是合理,XML 同时在特定领域也是无可替代的!






审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • XML
    XML
    +关注

    关注

    0

    文章

    183

    浏览量

    32936
  • Web服务器
    +关注

    关注

    0

    文章

    137

    浏览量

    24227
  • javascript
    +关注

    关注

    0

    文章

    511

    浏览量

    53403
  • JSON
    +关注

    关注

    0

    文章

    111

    浏览量

    6817

原文标题:JSON 将替代 XML?绝对不可能!

文章出处:【微信号:芋道源码,微信公众号:芋道源码】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    反转“不可能”,硬件创新以你为中心

    回到“大众创业,万众创新”风口下的智能硬件创业也是如此,从最初的idea到demo,从路演到资金成功注入,从起初供应链搭建直至完善,太多的“不可能”到“可能”,2015中国硬件创新大赛陪你一起见证。
    发表于 09-22 11:48 1185次阅读

    深井中的深度学习:MCU+AI,让“不可能”的田园机井智能抄表成为可能

    深井中的深度学习:MCU+AI,让“不可能”的田园机井智能抄表成为可能
    的头像 发表于 09-21 17:41 542次阅读
    深井中的深度学习:MCU+AI,让“<b class='flag-5'>不可能</b>”的田园机井智能抄表成为<b class='flag-5'>可能</b>!

    新世界没有硅光子不可能成功

    的开关,未来实现云对数据中心的连接和交换,必须采用硅光波导片上光开关技术。 在硅光技术展现实力之前,人类现在从事的电子信息活动就象我们在今天看待旧石器时代的古人,充满着幼稚和历史的漫不经心。 一个新世界没有硅光技术绝对不行。我们必须要尽早布局硅光子技术!
    发表于 12-21 15:20

    在PSoC Creator中实现电阻是不可能的吗

    你好,我使用PSoC3来实现一些模拟滤波器和其他子电路。这些滤波器,当然,包括OAS和无源元件,如电阻器和电容器。据我所知,在PSoC Creator中实现电阻是不可能的,对吗?电容器呢?有没有
    发表于 04-08 09:55

    如何让不可能成为可能

    我们应当张开双臂拥抱快节奏的技术变革,它推动科学技术的进步,让人们更加紧密相连并感到安全自信,它改变了我们此前认为的不可能。这些成果的影响不再只孤立于一个狭窄的垂直市场,它渗透进了各行各业,对现有
    发表于 10-15 06:12

    如果个人去流片的话可不可能啊?

    如果个人去流片的话可不可能啊?自己设计一个芯片去流片,可能吗?
    发表于 06-18 06:30

    零序电流互感器是绝对不可以穿零线的对吗?

    零序电流互感器是绝对不可以穿零线的对吗?
    发表于 04-03 11:27

    锤子新机不可能是T3!应是坚果2或新系列

      春天了,老罗之前说过在春天会发布一款新机,所以网上就爆出了许多关于新机的消息,但是有很多消息说即将发布的新机是传闻已久的T3,这个是不可能的,春天要不发布的机器根本不可能是T3。
    发表于 03-16 10:10 2845次阅读

    什么是区块链不可能三角为什么不可突破

    CAP定理证明了:当网络存在分区时,提供可靠的原子一致性数据是不可能的,但是想要实现一致性、可用性、分区容错性,三个属性中的两个是可行的。在异步通信系统中,当没有锁提供时,如果出现消息丢失,即使允许过时的数据返回,提供一致性数据也是不可能的。在同步通信系统中,可以在一致性
    发表于 02-26 11:03 2929次阅读
    什么是区块链<b class='flag-5'>不可能</b>三角为什么<b class='flag-5'>不可</b>突破

    如何解决公链面临的不可能三角模型问题

    「底层公链 → 解决方案 → 行业应用」是区块链业内公认的发展逻辑。作为底层技术,公链支撑整个行业的发展,决定区块链应用生态的发展进程。然而,公链面临「不可能三角模型」、「根特别多、没长叶子的市场」等困境,极大的限制了区块链技术的商用落地进程。
    发表于 07-19 10:58 1987次阅读
    如何解决公链面临的<b class='flag-5'>不可能</b>三角模型问题

    什么是区块链中的不可能三角

    区块链本质上是一个去中心化的分布式账本数据库,它也存在“不可能三角”。今天,我们就来讲讲“不可能三角”在区块链世界是如何权衡和妥协的。
    发表于 12-13 08:59 8221次阅读

    区块链如何解决医疗数据中的不可能三角

    不可能三角”一词,最早来自金融经济领域,指的是资本自由流动、汇率稳定和货币政策独立性三者不可能兼得。
    发表于 01-17 10:26 1455次阅读

    固态电容不可能爆浆?了解一下其中的双刃剑

    性均较液态电解液低,它的沸点也高达摄氏 350 度,因此几乎不可能出现爆浆的可能性。从理论上来说,固态电容几乎不可能爆浆。 固态电容在等效串联阻抗表现上相比传统电解电容有更优异的表现,据测试显示,固态电容在高频运作时等
    的头像 发表于 10-29 21:39 422次阅读

    超轻量分组密码算法GRANULE的不可能差分分析

    GRANULE算法是一个超轻量分组密码算法,有着较好的软硬件实现性能,但目前尚没有该算法在不可能差分分析下的安全性评估结果。为此,利用中间相错技术,找到 GRANULE64算法多条5轮不可能差分区
    发表于 06-01 14:27 3次下载

    什么是JSON劫持 JSONXML的区别

    JSON数据进行拦截,转而将数据发送回给恶意攻击者,这就是JSON劫持的大概含义。一般来说进行劫持的JSON数据都是包含敏感信息或者有价值的数据。 JSON
    的头像 发表于 08-05 10:09 1329次阅读