tw4ld6 发表于 2024-11-3 17:26:16

关于JSON与XML的区别比较


    <div style="color: black; text-align: left; margin-bottom: 10px;">
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">此刻</span>互联网上,最流行的两大传输数据的标准<span style="color: black;">便是</span>json和XML了,关于谁是最好的,<span style="color: black;">始终</span><span style="color: black;">败兴</span>都是人们争论的<span style="color: black;">专题</span>,其实各有各的缺点和优点;</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">1.定义介绍</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">(1).XML定义</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其<span style="color: black;">拥有</span>结构性的标记语言,<span style="color: black;">能够</span>用来标记数据、定义数据类型,是一种<span style="color: black;">准许</span>用户对自己的标记语言进行定义的源语言。 XML<span style="color: black;">运用</span>DTD(document type definition)文档类型定义来组织数据;格式统一,跨平台和语言,早已<span style="color: black;">作为</span>业界公认的标准。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">XML是标准通用标记语言 (SGML) 的子集,非常适合 Web 传输。XML <span style="color: black;">供给</span>统一的<span style="color: black;">办法</span>来描述和交换独立于应用程序或供应商的结构化数据。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">(2).JSON定义</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">JSON(JavaScript Object Notation)一种轻量级的数据交换格式,<span style="color: black;">拥有</span>良好的可读和便于快速编写的特性。可在<span style="color: black;">区别</span>平台之间进行数据交换。JSON采用兼容性很高的、完全独立于语言文本格式,<span style="color: black;">同期</span><span style="color: black;">亦</span>具备类似于C语言的习惯(<span style="color: black;">包含</span>C, C++, C#, Java, JavaScript, Perl, Python等)体系的<span style="color: black;">行径</span>。这些特性使JSON<span style="color: black;">作为</span>理想的数据交换语言。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">JSON基于JavaScript Programming Language , Standard ECMA-262 3rd Edition - December 1999 的一个子集。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">2.XML和JSON优缺点</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">(1).XML的优缺点</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">&lt;1&gt;.XML的优点</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"> A.格式统一,符合标准;</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"> B.容易与其他系统进行远程交互,数据共享比较方便。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">&lt;2&gt;.XML的缺点</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"> A.XML文件庞大,文件格式<span style="color: black;">繁杂</span>,传输占带宽;</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">B.服务器端和客户端都需要花费<span style="color: black;">海量</span>代码来解析XML,导致服务器端和客户端代码变得<span style="color: black;">反常</span><span style="color: black;">繁杂</span>且<span style="color: black;">很难</span><span style="color: black;">守护</span>;</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"> C.客户端<span style="color: black;">区别</span>浏览器之间解析XML的方式不一致,需要重复编写<span style="color: black;">非常多</span>代码;</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"> D.服务器端和客户端解析XML花费较多的资源和时间。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">(2).JSON的优缺点</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">&lt;1&gt;.JSON的优点:</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"> A.数据格式比较简单,易于读写,格式都是压缩的,占用带宽小;</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">B.易于解析,客户端JavaScript<span style="color: black;">能够</span>简单的<span style="color: black;">经过</span>eval()进行JSON数据的读取;</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"> C.支持多种语言,<span style="color: black;">包含</span>ActionScript, C, C#, ColdFusion, Java, JavaScript, Perl, PHP, Python, Ruby等服务器端语言,便于服务器端的解析;</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">D.在PHP世界,<span style="color: black;">已然</span>有PHP-JSON和JSON-PHP<span style="color: black;">显现</span>了,偏于PHP序列化后的程序直接调用,PHP服务器端的对象、数组等能直接生成JSON格式,便于客户端的<span style="color: black;">拜访</span>提取;</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"> E.<span style="color: black;">由于</span>JSON格式能直接为服务器端代码<span style="color: black;">运用</span>,大大简化了服务器端和客户端的代码<span style="color: black;">研发</span>量,且完成任务不变,并且易于<span style="color: black;">守护</span>。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">&lt;2&gt;.JSON的缺点</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">A.<span style="color: black;">无</span>XML格式这么推广的深入人心和喜用广泛,<span style="color: black;">无</span>XML<span style="color: black;">那样</span>通用性;</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"> B.JSON格式<span style="color: black;">日前</span>在Web Service中推广还属于初级<span style="color: black;">周期</span>。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">3.XML和JSON的优缺点对比</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">(1).可读性方面。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">JSON和XML的数据可读性基本相同,JSON和XML的可读性可谓<span style="color: black;">平起平坐</span>,一边是<span style="color: black;">意见</span>的语法,一边是规范的标签形式,XML可读性较好些。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">(2).可扩展性方面。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">XML天生有很好的扩展性,JSON当然<span style="color: black;">亦</span>有,<span style="color: black;">无</span>什么是XML能扩展,JSON<span style="color: black;">不可</span>的。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">(3).编码难度方面。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">XML有丰富的编码工具,<span style="color: black;">例如</span>Dom4j、JDom等,JSON<span style="color: black;">亦</span>有json.org<span style="color: black;">供给</span>的工具,<span style="color: black;">然则</span>JSON的编码<span style="color: black;">显著</span>比XML容易许多,即使不借助工具<span style="color: black;">亦</span>能写出JSON的代码,可是要写好XML就不太容易了。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">(4).解码难度方面。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">XML的解析得<span style="color: black;">思虑</span>子节点父节点,让人头昏眼花,而JSON的解析难度几乎为0。这一点XML输的真是没话说。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">(5).流行度方面。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">XML<span style="color: black;">已然</span>被业界广泛的<span style="color: black;">运用</span>,而JSON才<span style="color: black;">刚才</span><span style="color: black;">起始</span>,<span style="color: black;">然则</span>在Ajax这个特定的<span style="color: black;">行业</span>,<span style="color: black;">将来</span>的发展<span style="color: black;">必定</span>是XML让<span style="color: black;">位置于</span>JSON。到时Ajax应该变成Ajaj(Asynchronous Javascript and JSON)了。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">(6).解析手段方面。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">JSON和XML<span style="color: black;">一样</span><span style="color: black;">持有</span>丰富的解析手段。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">(7).数据体积方面。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">JSON相<span style="color: black;">针对</span>XML来讲,数据的体积小,传递的速度更快些。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">(8).数据交互方面。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">JSON与JavaScript的交互更加方便,<span style="color: black;">更易</span>解析处理,更好的数据交互。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">(9).数据描述方面。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">JSON对数据的描述性比XML较差。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">(10).传输速度方面。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">JSON的速度要远远快于XML。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">4.XML与JSON数据格式比较</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">(1).关于轻量级和重量级</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">轻量级和重量级是相对<span style="color: black;">来讲</span>的,<span style="color: black;">那样</span>XML相<span style="color: black;">针对</span>JSON的重量级<span style="color: black;">表现</span>在哪呢?应该<span style="color: black;">表现</span>在解析上,XML<span style="color: black;">日前</span>设计了两种解析方式:DOM和 SAX。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">&lt;1&gt;.DOM</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">DOM是把一个数据交换格式XML看成一个DOM对象,需要把XML文件<span style="color: black;">全部</span>读入内存,这一点上JSON和XML的原理是<span style="color: black;">同样</span>的,<span style="color: black;">然则</span>XML要<span style="color: black;">思虑</span>父节点和子节点,这一点上JSON的解析难度要小<span style="color: black;">非常多</span>,<span style="color: black;">由于</span>JSON构建于两种结构:key/value,键值对的集合;值的有序集合,可理解为数组;</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">&lt;2&gt;.SAX</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">SAX不需要<span style="color: black;">全部</span>读入文档就<span style="color: black;">能够</span>对解析出的内容进行处理,是一种逐步解析的<span style="color: black;">办法</span>。程序<span style="color: black;">亦</span><span style="color: black;">能够</span>随时终止解析。<span style="color: black;">这般</span>,一个大的文档就<span style="color: black;">能够</span>逐步的、一点一点的展现出来,<span style="color: black;">因此</span>SAX适合于大规模的解析。这一点,JSON<span style="color: black;">日前</span>是做不到得。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">因此</span>,JSON和XML的轻/重量级的区别在于:</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">JSON只<span style="color: black;">供给</span>整体解析<span style="color: black;">方法</span>,而这种<span style="color: black;">办法</span><span style="color: black;">仅在</span>解析较少的数据时<span style="color: black;">才可</span>起到良好的效果;</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">XML<span style="color: black;">供给</span>了对大规模数据的逐步解析<span style="color: black;">方法</span>,这种<span style="color: black;">方法</span>很适合于对<span style="color: black;">海量</span>数据的处理。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">(2).关于数据格式编码及解析难度</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">&lt;1&gt;.在编码方面。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">虽然XML和JSON都有各自的编码工具,<span style="color: black;">然则</span>JSON的编码要比XML简单,即使不借助工具,<span style="color: black;">亦</span><span style="color: black;">能够</span>写出JSON代码,但要写出好的XML代码就有点困难;与XML<span style="color: black;">同样</span>,JSON<span style="color: black;">亦</span>是基于文本的,且它们都<span style="color: black;">运用</span>Unicode编码,且其与数据交换格式XML<span style="color: black;">同样</span><span style="color: black;">拥有</span>可读性。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">主观上来看,JSON更为清晰且冗余更少些。JSON网站<span style="color: black;">供给</span>了对JSON语法的严格描述,只是描述较简短。从总体来看,XML比较适合于标记文档,而JSON却更适于进行数据交换处理。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">&lt;2&gt;.在解析方面。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">在普通的web应用<span style="color: black;">行业</span>,<span style="color: black;">研发</span>者经常为XML的解析伤脑筋,无论是服务器端生成或处理XML,还是客户端用 JavaScript 解析XML,都常常<span style="color: black;">引起</span><span style="color: black;">繁杂</span>的代码,极低的<span style="color: black;">研发</span>效率。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">实质</span>上,<span style="color: black;">针对</span>大<span style="color: black;">都数</span>Web应用<span style="color: black;">来讲</span>,<span style="color: black;">她们</span><span style="color: black;">基本</span>不需要<span style="color: black;">繁杂</span>的XML来传输数据,XML宣<span style="color: black;">叫作</span>的扩展性<span style="color: black;">这里</span>就很少<span style="color: black;">拥有</span><span style="color: black;">优良</span>,许多Ajax应用<span style="color: black;">乃至</span>直接返回HTML片段来构建动态Web页面。和返回XML并解析它相比,返回HTML片段大大降低了系统的<span style="color: black;">繁杂</span>性,但<span style="color: black;">同期</span>缺少了<span style="color: black;">必定</span>的灵活性。同XML或 HTML片段相比,数据交换格式JSON <span style="color: black;">供给</span>了更好的简单性和灵活性。在Web Serivice应用中,<span style="color: black;">最少</span>就<span style="color: black;">日前</span><span style="color: black;">来讲</span>XML仍有不可动摇的地位。</p>
      <div style="color: black; text-align: left; margin-bottom: 10px;"><img src="https://p3-sign.toutiaoimg.com/pgc-image/e50583d86c614401b9ac29ce607c6e54~noop.image?_iz=58558&amp;from=article.pc_detail&amp;lk3s=953192f4&amp;x-expires=1729841747&amp;x-signature=PILbGDtK1bE0D6Mckpl5RlCG9YM%3D" style="width: 50%; margin-bottom: 20px;"></div>
      <div style="color: black; text-align: left; margin-bottom: 10px;"><img src="https://p3-sign.toutiaoimg.com/pgc-image/f2ea6d1a064743999b69eeb7a2707327~noop.image?_iz=58558&amp;from=article.pc_detail&amp;lk3s=953192f4&amp;x-expires=1729841747&amp;x-signature=JHP%2BLSHI9tA6VmqMBkdKF0Q%2Brwc%3D" style="width: 50%; margin-bottom: 20px;"></div>
    </div>




页: [1]
查看完整版本: 关于JSON与XML的区别比较