数据格式之战:JSON vs XML
在比较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相关推荐
- php如何返回数据请求数据格式化,PHP以json或xml数据格式返回请求数据的封装代码...
现在主流的数据格式无非就是json和xml,下面我们来看看如何用php来封装一个返回这两种格式数据的类,下面青岛星网跟大家一起分享. 1.以json格式返回数据 json格式返回数据比较简单,直接将我 ...
- ajax html xml数据格式,AJAX | 数据格式JSON与XML的区别
XML与JSON的基本知识 HTML5学堂:XML和JSON是两种经典的数据格式,在AJAX当中的异步加载,申请的文件通常不是html.txt文件,而是JSON和XML.相比JSON文件比较居多.JS ...
- 解析json数据_Retrofit同时解析JSON和XML数据格式
前言 Android开发中,我们会经常遇到前端需要解析两种数据格式(json和xml),比如自己服务器返回的是json格式的数据,我们做微信登录的时候,微信返回的格式又是xml格式的.我们可以通过自己 ...
- json string 格式_Retrofit同时解析JSON和XML数据格式
前言 Android开发中,我们会经常遇到前端需要解析两种数据格式(json和xml),比如自己服务器返回的是json格式的数据,我们做微信登录的时候,微信返回的格式又是xml格式的.我们可以通过自己 ...
- 一种简易网络传输数据格式【替代json/xml】
网络传输数据格式可有多种选择,主要可分为三种: 1.自定义二进制: 2.提供序列化和反序列化库的开源协议[如protocol buffers,json,Thrift]: 3.文本化协议[如json,x ...
- ajax请求json和xml数据及对json和xml格式数据的解析
ajax请求json和xml数据及对json和xml格式数据的解析 一.ajax请求json数据并解析 ajax的写法: json数据解析: 请求json经常出现的跨域报错: 二.ajax请求xml数 ...
- SpringBoot使用教程【1】Restful API设计 返回json,xml格式...
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/qingfeng812/article/details/74738885 效果展示: 浏览器截图 ht ...
- JSON与XML的区别比较(非常全面)
1.定义介绍 (1).XML定义 扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据.定义数据类型,是一种允 ...
- Basic的Json与Xml
1.概念 JSON:JavaScript Object Notation [JavaScript 对象表示法]. XML:extensiable markup language 被称作可扩展标记语言 ...
最新文章
- 自定义线程池-线程池类和测试类编写
- 三十年TCP与七年QUIC 谁才是未来?
- python基础===PEP网站,代码规范指南
- Java日历compareTo()方法与示例
- UIWebView与JavaScript的交互
- 浅谈FFT(快速博立叶变换)学习笔记
- 获取设备和 App 信息
- Linux——Django 开发环境部署(二)python版本控制器pyenv
- 再见 FTP/SFTP!是时候拥抱下一代文件传输利器 Croc 了!
- 2507-AOP- springboot中使用-使用注解方式
- Java实现 极光 im 聊天后台发送消息
- Ribbon界面开发(C++)
- 生活用电安全常识:零线与地线的区别!
- 论文写作笔记1:医学跨计算机期刊介绍
- CPU(中央处理器)和GPU(图像处理器)区别
- fNIRS功能近红外数据处理服务
- 高德地图SDK在API 31以上崩溃的问题
- php实现清空购物车前确认,php – 在Woocommerce中添加到购物车之前清空购物车
- 宿主机与开发板网络共享
- 263邮件服务器地址,263企业邮箱 服务器IP汇总
热门文章
- thymeleaf基本语法
- springcloud1.5.9+zipkin链路跟踪配置
- 计算机文件共享访问无权限,WIN7访问共享文件无权限解决方法
- mysql 降序_MySQL 8 新特性之降序索引底层实现
- centos php编译安装mysql_CentOS手动编译安装Apache、PHP、MySQL
- 13-Qt6 QMap
- 信号回勾产生的原因_电力电缆故障原因及常用检测方法
- 怎样能用计算机打出表白数字,怎么用数字表白?盘点数字表白暗语
- db2 springboot 整合_springboot的yml配置文件通过db2的方式整合mysql代码示例
- wordpress 新建php文件大小,WordPress最大上传文件大小限制修改