在比较JSON和XML之前,我们先来上一堂关于数据格式的简要历史(更准确的说,是关于XML的始祖):

  • 早在1970年,IBM开发了一种叫Generalized Markup Language的标记语言,简称GML,它主要是为脚本语言定义的一组宏。
  • 1986年,基于GML开发的另一种标记语言Standard Generalized Markup Language(简称SGML)诞生,并成为了ISO标准,接着在1998年,SGML又被重新定义为XML。

然而另一方面,JSON是Douglas Crockford在2001年开始推广使用的数据格式,在2005年-2006年正式成为主流的数据格式,雅虎和谷歌就在那时候开始广泛地使用JSON格式。

两者的定义

XML(Extensible Markup Language)是一种用来编码文档的标记语言,人和机器都能够快速理解XML文档的含义。它的其中一个目标就是能在互联网上广泛应用,现在XML已经被广泛地应用在各种应用、WEB服务和网站中。

JSON(JavaScript Object Notation)是一种轻量级的数据格式,它以”name / value”的格式来传输数据对象,JSON的目的就是为了能替代XML,现在也有很多编程语言支持JSON格式了。

从语法的角度看,两者的区别还是很大的,看下面的两段代码:

JSON

XML

各自的优势

从上面的两个例子中我们可以看到,由于合理地利用了代码缩进和空格,JSON比XML可读性更强一些,另外,JSON没有利用全标记的结构,所以代码看起来更加紧凑,占用的空间也少。

JSON的另一个优势是它可以包含更多的结构化信息,比如:它更容易表达不同的数据格式,像numbers (11),strings (“11″)和NULL值,甚至是数组。

另一方面,XML依然被开发者广泛地使用着,作为数据格式领域的老大哥,XML也有很多自己的优势,比如:XML有更多的文档和开发工具。另外一个比JSON更大的优势是XML有一个 XML schema 来描述XML结构化信息,它能够详细描述XML文档的信息,也可以进行数据的验证。

选择JSON还是XML?

最后,我们来客观地选择JSON还是XML。如果你正要学习JSON及其相关的库,那么你可以继续学习,因为JSON将更加流行,使用也更加广泛。另外,如果你相对保守的话,你可以坚持使用XML,对于这么多年老牌的标记语言,证明了XML的存在是有其价值的,未来它也不会被全部取代。

那么谈谈你对这两种数据格式的看法,你在开发中更倾向于哪一种数据格式呢?

译文链接:http://www.codeceo.com/article/json-vs-xml.html
英文原文:Battle of data formats: JSON vs XML
翻译作者:码农网 – 小峰

数据格式之战:JSON vs XML相关推荐

  1. php如何返回数据请求数据格式化,PHP以json或xml数据格式返回请求数据的封装代码...

    现在主流的数据格式无非就是json和xml,下面我们来看看如何用php来封装一个返回这两种格式数据的类,下面青岛星网跟大家一起分享. 1.以json格式返回数据 json格式返回数据比较简单,直接将我 ...

  2. ajax html xml数据格式,AJAX | 数据格式JSON与XML的区别

    XML与JSON的基本知识 HTML5学堂:XML和JSON是两种经典的数据格式,在AJAX当中的异步加载,申请的文件通常不是html.txt文件,而是JSON和XML.相比JSON文件比较居多.JS ...

  3. 解析json数据_Retrofit同时解析JSON和XML数据格式

    前言 Android开发中,我们会经常遇到前端需要解析两种数据格式(json和xml),比如自己服务器返回的是json格式的数据,我们做微信登录的时候,微信返回的格式又是xml格式的.我们可以通过自己 ...

  4. json string 格式_Retrofit同时解析JSON和XML数据格式

    前言 Android开发中,我们会经常遇到前端需要解析两种数据格式(json和xml),比如自己服务器返回的是json格式的数据,我们做微信登录的时候,微信返回的格式又是xml格式的.我们可以通过自己 ...

  5. 一种简易网络传输数据格式【替代json/xml】

    网络传输数据格式可有多种选择,主要可分为三种: 1.自定义二进制: 2.提供序列化和反序列化库的开源协议[如protocol buffers,json,Thrift]: 3.文本化协议[如json,x ...

  6. ajax请求json和xml数据及对json和xml格式数据的解析

    ajax请求json和xml数据及对json和xml格式数据的解析 一.ajax请求json数据并解析 ajax的写法: json数据解析: 请求json经常出现的跨域报错: 二.ajax请求xml数 ...

  7. SpringBoot使用教程【1】Restful API设计 返回json,xml格式...

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/qingfeng812/article/details/74738885 效果展示: 浏览器截图 ht ...

  8. JSON与XML的区别比较(非常全面)

    1.定义介绍 (1).XML定义 扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据.定义数据类型,是一种允 ...

  9. Basic的Json与Xml

    1.概念 JSON:JavaScript Object Notation [JavaScript 对象表示法]. XML:extensiable markup language 被称作可扩展标记语言 ...

最新文章

  1. 自定义线程池-线程池类和测试类编写
  2. 三十年TCP与七年QUIC 谁才是未来?
  3. python基础===PEP网站,代码规范指南
  4. Java日历compareTo()方法与示例
  5. UIWebView与JavaScript的交互
  6. 浅谈FFT(快速博立叶变换)学习笔记
  7. 获取设备和 App 信息
  8. Linux——Django 开发环境部署(二)python版本控制器pyenv
  9. 再见 FTP/SFTP!是时候拥抱下一代文件传输利器 Croc 了!
  10. 2507-AOP- springboot中使用-使用注解方式
  11. Java实现 极光 im 聊天后台发送消息
  12. Ribbon界面开发(C++)
  13. 生活用电安全常识:零线与地线的区别!
  14. 论文写作笔记1:医学跨计算机期刊介绍
  15. CPU(中央处理器)和GPU(图像处理器)区别
  16. fNIRS功能近红外数据处理服务
  17. 高德地图SDK在API 31以上崩溃的问题
  18. php实现清空购物车前确认,php – 在Woocommerce中添加到购物车之前清空购物车
  19. 宿主机与开发板网络共享
  20. 263邮件服务器地址,263企业邮箱 服务器IP汇总

热门文章

  1. thymeleaf基本语法
  2. springcloud1.5.9+zipkin链路跟踪配置
  3. 计算机文件共享访问无权限,WIN7访问共享文件无权限解决方法
  4. mysql 降序_MySQL 8 新特性之降序索引底层实现
  5. centos php编译安装mysql_CentOS手动编译安装Apache、PHP、MySQL
  6. 13-Qt6 QMap
  7. 信号回勾产生的原因_电力电缆故障原因及常用检测方法
  8. 怎样能用计算机打出表白数字,怎么用数字表白?盘点数字表白暗语
  9. db2 springboot 整合_springboot的yml配置文件通过db2的方式整合mysql代码示例
  10. wordpress 新建php文件大小,WordPress最大上传文件大小限制修改