xml学习篇(二) ----JSON 和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的存在是有其价值的,未来它也不会被全部取代。
那么谈谈你对这两种数据格式的看法,你在开发中更倾向于哪一种数据格式呢?
xml学习篇(二) ----JSON 和XML对比的更多相关文章
- XML学习总结(二)——XML入门
XML学习总结(二)——XML入门 一.XML语法学习 学习XML语法的目的就是编写XML 一个XML文件分为如下几部分内容: 文档声明 元素 属性 注释 CDATA区 .特殊字符 处理指令(proc ...
- .NETCore C# 中级篇2-6 Json与XML
.NETCoreCSharp 中级篇2-6 本节内容为Json和XML操作 简介 Json和XML文本是计算机网络通信中常见的文本格式,其中Json其实就是JavaScript中的数组与对象,体现了一 ...
- xml学习篇(一)
转自:http://www.cnblogs.com/Jimmy009/archive/2012/06/18/2553722.html XML简介: 好了可以开始正式的学习了,在以前看一本计算机书籍,一 ...
- xml学习笔记二(规则)
XML 的语法规则很简单,且很有逻辑.这些规则很容易学习,也很容易使用. 所有 XML 元素都须有关闭标签 在 HTML,经常会看到没有关闭标签的元素: <p>This is a para ...
- [python xml 学习篇][0]
tree = ET.parse("Result.xml")root = tree.getroot()print type(root)print root.tag # 得到root ...
- JOSN学习总结<二> JSON的格式与语法
今晚又下班早!!嘿嘿,继续JOSN的总结吧!!!!有人说这么简单还有必要写吗???我觉得“眼里过十遍不如手里过一遍”!!有错误之处请指正!!共同学习下!!!!废话不说了,进入今晚的正题: <二& ...
- XML学习笔记(2)--dom4j操作XML
1. 介绍(四种方式的比较这部分转载自:http://www.blogjava.net/xcp/archive/2010/02/12/312617.html) 1)DOM(JAXP Crimson解析 ...
- XML学习总结(1)——XML入门
一.XML语法学习 学习XML语法的目的就是编写XML 一个XML文件分为如下几部分内容: 文档声明 元素 属性 注释 CDATA区 .特殊字符 处理指令(processing instruction ...
- xml学习总结(二)
XML Schema (1)Schema内置类型 ->字符串类型 <strlist xmlns:xsi="http://www.w3.org/2001/XMLSchema-ins ...
随机推荐
- [Lua]cocos framework
package_support function cc.register(name, package) function cc.load(...) function cc.bind(target, . ...
- 【elasticsearch】(3)centos7 安装中文分词插件elasticsearch-analyzer-ik
前言 elasticsearch(下面简称ES,安装ES点击这里)的自带standard分词只能把汉语分割成一个个字,而不能分词.分段,这就是我们需要分析器ik的地方了. 一.下载ik的相应版本 查看 ...
- Jquery 和 Js
jQuery [一] jQuery 1: javaScript和 javaScript库: (1) javaScript自身存在的3个弊端:复杂的文档对象模型(DOM),不 ...
- onethink 换空间报错 解决方案
onethink 换空间的时候有两个配置文件 Application\Common\Conf Application\User\Conf 如果报错先测试数据库 <?php $con = mysq ...
- 存储过程修改产品描述页图片alt描述信息
今天修改了所有产品的图片信息,用到了存储过程.在参考下面存储过程以后,终于搞定了. 1 BEGIN 2 DECLARE Done INT DEFAULT 0; 3 4 DECLARE CurrentL ...
- Quartz1.8.5例子(八)
/* * Copyright 2005 - 2009 Terracotta, Inc. * * Licensed under the Apache License, Version 2.0 (the ...
- struts中如何将前台的值能在action中获取到
如何获取值----三种方式(属性驱动,对象驱动,模型驱动) A:属性驱动 必须生成get,set方法 B:对象驱动 给对象也必须生成get,set方法 c模型驱动 模型驱动需要action去实现 ...
- babun,windows shell
babun是windows上的一个第三方shell,在这个shell上面你可以使用几乎所有linux,unix上面的命令,他几乎可以取代windows的shell. babun的几个特点: 使用bab ...
- Java反射的理解
反射的作用: 1.运行时检查类的结构 2.运行时更改类的字段值 3.调用类的方法 准备知识: Class类:虚拟机为每一个对象保存的一份对象所属类的清单: static Class for ...
- 如何通过数据库修改WordPress后台登录密码
大家是否有过因为忘记WordPress后台登陆密码的时候?其实WordPress后台登陆密码的找回或修改的方法有多种,比如通过邮箱重启密码,又或者通过主机控制面板进入数据库修改等等.本篇教程以GoDd ...