XML与JSON两种数据结构比较和各自底层实现

Posted 墨隐于非

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了XML与JSON两种数据结构比较和各自底层实现相关的知识,希望对你有一定的参考价值。

1.XML与JSON两种数据结构的优缺点

 1> XML
 优点:


  • 格式统一, 符合标准


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


 缺点:

  • XML文件格式文件庞大, 格式复杂, 传输占用带宽

  • 服务器端和客户端都需要花费大量代码解析XML, 不论服务器端和客户端代码变的异常复杂不容易维护

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


  • 服务器端 和 客户端 解析XML花费资源和时间

 2> JSON
 优点:


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

  • 易于解析这种语言

  • 支持多种语言, 包括ActionScript, C, C#, ColdFusion, Java, javascript, Perl, php, Python, Ruby等语言服务器端语言, 便于服务器端的解析


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


 缺点:


  • 没有XML格式这么推广的深入人心和使用广泛, 没有XML那么通用性

  • JSON格式目前在Web Service中推广还属于初级阶段

2.JSON、XML解析方式的底层实现

 1> XML

  Xml两种解析方式,DOM SAX

  DOM 需要读入整个XML文档(文档驱动),SAX 是事件驱动的,并不需要读入整个文档,文档的读入过程也就是SAX的解析过程。

  SAX 简单地说就是对XML文档进行顺序扫描,当扫描到 文档开始结束元素(element)的 开始结束 时,就会触发相应的事件处理 函数,由事件处理函数做相应的动作,处理完后继续扫描直到文档结束,则解析完毕

  DOM 解析XML文件时,会将XML文件的所有内容读取到内存中,然后允许你使用 DOM API 操作 XML 树。也就是说,DOM 会把XML以 的形式读取内存中,然后在通过相应的 API 来操作这个 XML树,从而达到解析XML文件的目的

 2> JSON

  json底层原理 遍历字符串中的字符,最终根据特助字符,比如{}[]:号等进行区分,{}是字典[]表示的是数组:号是字典的键和值的分水岭最后是将json数据转化为字典,然后使用 KVC 将字典转为 model

以上是关于XML与JSON两种数据结构比较和各自底层实现的主要内容,如果未能解决你的问题,请参考以下文章

Java高级面试题

hashMap的底层实现

(转载)JVM实现synchronized的底层机制

XML和JSON的比较

XML和JSON的比较

Java程序员为什么要了解底层Java虚拟机