JSON与XML

标签: json xml | 发表时间:2013-10-10 03:27 | 作者:kanglix1an
出处:http://blog.csdn.net

   目前,在web开发领域,主要的数据交换格式有XML和JSON,对于XML相信大家都很熟悉。XML不仅能处理数字和文字等经典的数据,还可以管理文件,格式化,图像,音频,视频,以及更多。 JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。如今,我们经常会面临创建数据文件时,JSON和XML之间的选择。这里有一些差异,帮助在合适的时候选择合适的格式:


1.简单性,开放性,互操作性

JSON和XML之间的简单,开放性和互操作性方面没有太大的区别。


2.易读性

       XML和JSON文件被认为是人可读。至少,他们是程序员可以理解的格式。然而,JSON文件更为严格,因此稍微更具可读性。这是因为JSON支持的数据格式的数量远小于XML。


3.编码及解析难度

      在编码上,虽然XML和JSON都有各自的编码工具,但是JSON的编码要比XML简单,即使不借助工具,也可以写出JSON代码,但要写出好的XML代码就有点困难;与XML一样,JSON也是基于文本的,且它们都使用Unicode编码,且其与数据交换格式XML一样具有可读性。

     主观上来看,JSON更为清晰且冗余更少些。JSON网站提供了对JSON语法的严格描述,只是描述较简短。从总体来看,XML比较适合于标记文档,而JSON却更适于进行数据交换处理。

      在解析上,在普通的web应用领域,开发者经常为XML的解析伤脑筋,无论是服务器端生成或处理XML,还是客户端用 JavaScript 解析XML,都常常导致复杂的代码,极低的开发效率。


4.轻量级和重量级

 轻量级和重量级是相对来说的,XML目前设计了两种解析方式:DOM和SAX。

        DOM是把一个数据交换格式XML看成一个DOM对象,需要把XML文件整个读入内存,这一点上JSON和XML的原理是一样的,但是XML要考虑父节点和子节点,这一点上JSON的解析难度要小很多,因为JSON构建于两种结构:key/value,键值对的集合;值的有序集合,可理解为数组;

       SAX不需要整个读入文档就可以对解析出的内容进行处理,是一种逐步解析的方法。程序也可以随时终止解析。这样,一个大的文档就可以逐步的、一点一点的展现出来,所以SAX适合于大规模的解析。这一点,JSON目前是做不到得。

      所以,JSON和XML的轻/重量级的区别在于:JSON只提供整体解析方案,而这种方法只在解析较少的数据时才能起到良好的效果;而XML提供了对大规模数据的逐步解析方案,这种方案很适合于对大量数据的处理。

 

    综上,JSON与XML各有特色与适用特点:

对比项目

XML

JSON

可读性

标签格式

建议语法

编码难度

较复杂,适合于标记文档

较简单,适合于数据交换处理

解码难度

较复杂,适合重量级

较简单,适合轻量级

安全性

较好

较差

 

作者:kanglix1an 发表于2013-10-9 19:27:50 原文链接
阅读:0 评论:0 查看评论

相关 [json xml] 推荐:

JSON与XML

- - CSDN博客推荐文章
   目前,在web开发领域,主要的数据交换格式有XML和JSON,对于XML相信大家都很熟悉. XML不仅能处理数字和文字等经典的数据,还可以管理文件,格式化,图像,音频,视频,以及更多.  JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成. 如今,我们经常会面临创建数据文件时,JSON和XML之间的选择.

XML和JSON

- - 四火的唠叨
不久前看到一个讨论帖,说的是XML和JSON的比较,说着说着后来就变成了JSON到底比XML牛逼在哪里. 不吹不黑,客观地来比较一下二者的异同. 有的情况下是的,但也不一定,比较这样的片段:. 二者信息量几乎均等,XML看起来并不显得多么冗余. 有恰当的编辑器,二者都可以有比较美观的缩进表达. 当然,也有很多情况我们可以看到XML要比JSON啰嗦(有人说JSON是fat-free alternative to XML),比如XML写这样的东西:.

protobuf,json,xml,binary,Thrift之间的对比

- - 学习笔记
一条消息数据,用protobuf序列化后的大小是json的10分之一,xml格式的20分之一,是二进制序列化的10分之一,总体看来ProtoBuf的优势还是很明显的. protobuf是google提供的一个开源序列化框架,类似于XML,JSON这样的数据表示语言,详情访问protobuf的google官方网站 https://code.google.com/p/protobuf/.

Spring 3 mvc中返回pdf,json,xml等不同的view

- - 互联网 - ITeye博客
源:http://jackyrong.iteye.com/blog/1874918.   spring mvc就是好,特别是rest风格的话,一个. org.springframework.web.servlet.view.ContentNegotiatingViewResolver就可以根据不同的场景返回不同的view了,比如返回json,xml,pdf等.马上看代码实现.

数据交换格式protobuf/json/xml/binary/Thrift

- - 互联网旁观者
一条消息数据,用 protobuf序列化后的大小是 json的10分之一, xml格式的20分之一,是 二进制序列化的10分之一,总体看来ProtoBuf的优势还是很明显的. protobuf是google提供的一个开源序列化框架,类似于XML,JSON这样的数据表示语言,详情访问 protobuf的google官方网站.

JAVA序列化与反序列化三种格式存取(默认格式、XML格式、JSON格式)

- - CSDN博客推荐文章
java中的序列化(serialization)机制能够将一个实例对象的状态信息写入到一个字节流中,使其可以通过socket进行传输、或者持久化存储到数据库或文件系统中;然后在需要的时候,可以根据字节流中的信息来重构一个相同的对象. 序列化机制在java中有着广泛的应用,EJB、RMI等技术都是以此为基础的.

XML to tree XML 树

- Bloger - 博客园-首页原创精华区
前面发了一个 html to tree 再发一个 xml to tree. 版权所有:版权所有(C) 2009. 文件名称:xml2tree.js. 完成日期:2009-12-22. 页:http://www.chaige.net */ var XML2Tree = function (ini) {.

xml sax解析

- - 移动开发 - ITeye博客
最近一直在做接口,主要用对xml的解析用的是sax,下面我对sax的几种写法做了一个测试:. System.out.println("耗时:"+(end-start));. System.out.println("当前 Java 虚拟机中的使用内存量:" + (freeMemory01-freeMemory02) + " 字节");.

jquery操作xml

- - CSDN博客Web前端推荐文章
jquery真的很强大,虽然一直在用jquery,不用一直都没有深入,这几天重新学习了一下,不得不感叹她的强大,已经让我深深入迷. 这里记录一下,她是怎么快速地操作xml的.. 这里我们有一个xml文件:. jquery如何操作呢,总的思想,就是和操作dom差不多的方法. 首先我们获取这个文件的内容:(我先引入jquery库哈).

json简介

- - ITeye博客
    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和生成. 它基于ECMA262语言规范(1999-12第三版)中JavaScript编程语言的一个子集. JSON采用与编程语言无关的文本格式,但是也使用了类C语言(包括C, C++, C#, Java, JavaScript, Perl, Python等)的习惯,这些特性使JSON成为理想的数据交换格式.