分享好友 前端技术首页 频道列表

数据格式之战:JSON vs XML

技巧心得  2016-07-13 13:300

  在比较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的存在是有其价值的,未来它也不会被全部取代。

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

  英文原文:Battle of data formats: JSON vs XML 译文:codeceo - 小峰

查看更多关于【技巧心得】的文章

展开全文
相关推荐
反对 0
举报 0
评论 0
图文资讯
热门推荐
优选好物
更多热点专题
更多推荐文章
react——axios 和fetch-jsonp
1.安装模块 npm install axios --save / npm install fetch-jsonp --save    2.在使用的页面引入import axios from 'axios'import fetchJsonp from 'fetch-jsonp';axiosimport React from 'react'import axios from 'axios'class Axios extends

0评论2023-03-08645

react中使用jsonp跨域
https://www.npmjs.com/package/jsonp原生jsonp的使用1.yarn add jsonp --save2.import JsonP from 'jsonp'3.JsonP('url',{},function(err, data){  console.log(data)})2.封装import JsonP from 'jsonp'export default class Axios {static jsonp(op

0评论2023-03-08849

Python实现类似JavaScript 的Json对象
Python实现类似JavaScript 的Json对象用过js的都知道 js中json也是一个对象,所以可以直接通过class.attr 取值,当attr不存在时也不会报错,那么Python可不可以也实现这样一个类,实现.取值呢答案肯定是可以的,只需要通过setattr把key,value 写入一个空类中

0评论2023-03-08639

JavaScript二进制数据序列化和反序列化 二进制序列化和json序列化的区别
最近业余时间在搞h5小游戏,由于同步协议过于频繁,和服务器之间的同步直接用json就显得太浪费了,于是我们商讨之下决定改用二进制。学习过程中并没有遇到一篇就解决问题的文章,遂再总结一发。 1.二进制数据的存储ArrayBuffer对象、TypedArray对象、DataVie

0评论2023-03-08350

Angular中使用$http.jsonp发送跨站请求
Angular中使用$http.jsonp发送跨站请求的实践中,遇到了下面的一些问题:1. 不是所有返回json格式的url都支持jsonp,服务器端需要支持从url中读取返回函数并用它封装json数据。2. AngularJS v1.6.1中,url中不能包含callback这个参数,而是用jsonpCallbackPa

0评论2023-03-08647

Angular解析json angular读取json文件
一. 解析本地Json数据并展示(待定)1. 创建服务{创建一个接口对象用于接收Json数据通过HttpClient获得本地Json文件}2. 组件中引入服务调用服务方法拿文件用subscribe将文件Json解析成对象再传给本地组件属性,其中调用服务方法放在组件ts的构造方法中3. 再组

0评论2023-03-08304

一个关于 jquery 和 php 的 jsonp 例子(与后台PHP成功通信)
script $(document).ready(function(){$.ajax({ url:'http://localhost/test/jsonp.php', dataType:"jsonp", //重点,使用jsonp方式解决跨域问题 jsonp:"jsonpcallback", //回调函数名,和php端统一 timeout: 5000, success:function(data, status){ alert('s

0评论2023-03-08838

利用jQuery获取jsonp
前端js代码:$.ajax({ url: 'http://localhost:8080/webApp/somejsonp', dataType: "jsonp", jsonp: "callback", success: function (data) { console.log(data) }})服务端代码:本例采用java实现  使用的springmvc伪代码 private boolean ifJsonp(HttpServl

0评论2023-03-08761

Jquery的each遍历数据组成JSON jquery的each遍历方法
遍历每个标签的值  html代码:    volist name="parArr" {$item.name}/a                                     /td             td                                         

0评论2023-03-08712

JQuery处理json与ajax返回JSON实例
json数据是一种经型的实时数据交互的数据存储方法,使用到最多的应该是ajax与json配合使用了,下面我来给大家介绍jquery处理json数据方法。一、JSON的一些基础知识。JSON中对象通过“{}”来标识,一个“{}”代表一个对象,如{“AreaId”:”123”},对象的值是

0评论2023-03-08874

更多推荐