和 XML 的比较
可读性
JSON 和 XML 的可读性可谓不相上下, 一边是简易的语法, 一边是规范的标签形式, 很难分出胜负
可扩展性
XML 天生有很好的扩展性, JSON 当然也有, 没有什么是 XML 能扩展, 而 JSON 却不能扩展的不过 JSON 在 Javascript https://baike.sogou.com/v2484.htm 主场作战, 可以存储 Javascript 复合对象, 有着 xml 不可比拟的优势
编码难度
XML 有丰富的编码工具, 比如 Dom4j https://baike.sogou.com/v4849291.htmJDom 等, JSON 也有提供的工具无工具的情况下, 相信熟练的开发人员一样能很快的写出想要的 xml 文档和 JSON 字符串, 不过, xml 文档要多很多结构上的字符
解码难度
XML 的解析方式有两种:
一是通过文档模型解析, 也就是通过父标签索引出一组标记例如: xmlData.getElementsByTagName("tagName"), 但是这样是要在预先知道文档结构的情况下使用, 无法进行通用的封装
另外一种方法是遍历节点 (document 以及 childNodes https://baike.sogou.com/v70124248.htm) 这个可以通过递归来实现, 不过解析出来的数据仍旧是形式各异, 往往也不能满足预先的要求
凡是这样可扩展的结构数据解析起来一定都很困难
JSON 也同样如此如果预先知道 JSON 结构的情况下, 使用 JSON 进行数据传递简直是太美妙了, 可以写出很实用美观可读性强的代码如果你是纯粹的前台开发人员, 一定会非常喜欢 JSON 但是如果你是一个应用开发人员, 就不是那么喜欢了, 毕竟 xml 才是真正的结构化标记语言, 用于进行数据传递
https://baike.sogou.com/PicBooklet.v?relateImageGroupIds=&lemmaId=25646&now=https://pic.baike.soso.com/p/20130812/20130812175508-979066966.jpg&type=1JSON 数据语言而如果不知道 JSON 的结构而去解析 JSON 的话, 那简直是噩梦费时费力不说, 代码也会变得冗余拖沓, 得到的结果也不尽人意但是这样也不影响众多前台开发人员选择 JSON 因为 json.js 中的 toJSONString()就可以看到 JSON 的字符串结构当然不是使用这个字符串, 这样仍旧是噩梦常用 JSON 的人看到这个字符串之后, 就对 JSON 的结构很明了了, 就更容易的操作 JSON
以上是在 Javascript 中仅对于数据传递的 xml 与 JSON 的解析在 Javascript 地盘内, JSON 毕竟是主场作战, 其优势当然要远远优越于 xml 如果 JSON 中存储 Javascript 复合对象, 而且不知道其结构的话, 我相信很多程序员也一样是哭着解析 JSON 的
实例比较
XML 和 JSON 都使用结构化方法 https://baike.sogou.com/v8079913.htm 来标记数据, 下面来做一个简单的比较
用 XML 表示中国部分省市数据如下:
XML 和 JSON 都使用结构化方法来标记数据, 下面来做一个简单的比较
用 XML 表示中国部分省市数据如下:
- <?xml version="1.0" encoding="utf-8"?>
- <country>
<name > 中国
- <province>
- <name > 黑龙江</name>
- <cities>
- <city > 哈尔滨</city>
- <city > 大庆</city>
- </cities>
- </province>
- <province>
- <name > 广东</name>
- <cities>
- <city > 广州</city>
- <city > 深圳</city>
- <city > 珠海</city>
- </cities>
- </province>
- <province>
- <name > 台湾</name>
- <cities>
- <city > 台北</city>
- <city > 高雄</city>
- </cities>
- </province>
- <province>
- <name > 新疆</name>
- <cities>
- <city > 乌鲁木齐</city>
- </cities>
- </province>
- </country>
用 JSON 表示如下:
- {
- "name":"中国",
- "province":[
- {
- "name":"黑龙江",
- "cities":{
- "city":["哈尔滨","大庆"]
- }
- },
- {
- "name":"广东",
- "cities":{
- "city":["广州","深圳","珠海"]
- }
- },
- {
- "name":"台湾",
- "cities":{
- "city":["台北","高雄"]
- }
- },
- {
- "name":"新疆",
- "cities":{
- "city":["乌鲁木齐"]
- }
- }
- ]
- }
编码的可读性, xml 有明显的优势, 毕竟人类的语言更贴近这样的说明结构 json 读起来更像一个数据块 https://baike.sogou.com/v8783783.htm, 读起来就比较费解了不过, 我们读起来费解的语言, 恰恰是适合机器阅读, 所以通过 json 的索引. province[0].name 就能够读取黑龙江这个值
编码的手写难度来说, xml 还是舒服一些, 好读当然就好写不过写出来的字符 JSON 就明显少很多去掉空白制表以及换行的话, JSON 就是密密麻麻的有用数据, 而 xml 却包含很多重复的标记字符
编码的可读性, xml 有明显的优势, 毕竟人类的语言更贴近这样的说明结构 json 读起来更像一个数据块, 读起来就比较费解了不过, 我们读起来费解的语言, 恰恰是适合机器阅读, 所以通过 json 的索引. province[0].name 就能够读取黑龙江这个值
编码的手写难度来说, xml 还是舒服一些, 好读当然就好写不过写出来的字符 JSON 就明显少很多去掉空白制表以及换行的话, JSON 就是密密麻麻的有用数据, 而 xml 却包含很多重复的标记字符
来源: http://www.bubuko.com/infodetail-2544767.html