JSON与XML的区别比较

合集下载

XML,JSON,序列化的优缺点

XML,JSON,序列化的优缺点

XML,JSON,序列化的优缺点
这三种机制都是关于数据传输的,⾸先谈谈序列化。

⼀.系列化:
什么是序列化?
把java对象转化为⼆进制字节码在⽹络上传输。

缺点:发送端是java语⾔。

接收端也必须是java语⾔,必须依赖java开发环境。

优点:数据转化为⼆进制字节,传输快,不浪费资源。

⼆.xml:
什么是xml?
XML 是各种应⽤程序之间进⾏数据传输的⼯具.
缺点:冗余标签太多,传输时浪费资源。

优点:发送端时java ,接收端可以时任何js,python,ruby。

不受环境限制。

三.json
什么是json?
传输数据的⼀种格式
优点:⽐起xml,数据更精简,还能和js配对使⽤。

揽收统治了浏览器。

三者的发展联系:
最先⽼百姓使⽤序列化⽹络传输数据,但受限于语⾔中⽴性,然后⽼百姓使⽤xml,但xml标签太多,传输时浪费资源,最后⽼百姓使⽤Json!
精简,语⾔中⽴!还能配合js⼲活!。

当前比较流行的几种数据交换格式

当前比较流行的几种数据交换格式

当前比较流行的几种数据交换格式当前比较流行的几种数据交换格式主要包括以下三种:·XML·JSON·YAMLXMLXML是当前编程中最为流行的数据交换格式,拥有跨平台、跨语言的优势。

对于XML 应该很熟悉,所以不再多做介绍。

JSON什么是JSON?·JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式;·它是基于JavaScript的一个子集;JSON的有优点?·易于人阅读和编写。

同时也易于机器解析和生成;·同XML或HTML片段相比,JSON提供了更好的简单性和灵活性;在Javascript地盘内,JSON毕竟是主场作战,其优势当然要远远优越于xml;·非常适合于服务器与JavaScript 的交互;JSON数据的数据格式JSON数据格式非常简单,简单来说,只有四点:1)并列数据之间用逗号(,)分隔;2)映射用冒号(:)表示;3)并列数据的集合用方括号([])表示;4)映射的集合用大括号({})表示。

上面4条规则就是JSON的所有内容。

JSON的数据表示和XML一样,JSON也是基于纯文本的数据格式。

由于JSON天生是为JavaScript准备的,因此,JSON的数据格式非常简单,您可以用JSON传输一个简单的String,Number,Boolean,也可以传输一个数组,或者一个复杂的Object 对象。

1)字符串格式:和大多数编程语言一样,引号之内就可以定义字符串;2)数字格式:3)Boolean数据类型;表示为true和false;4)Object对象:JSON中使用{}包含一系列无序的key-value键值对表示Object对象;JSON数据处理原理JSON的数据处理原理的步骤如下:1)客户端发送数据到服务器端,服务器端响应用户请求返回数据,此时可以将服务器端的数据封装成为JSON传送到Web页面;在Java开发服务器端通常用以下几个方法将后台得到的数据封装成为JSON数据,如下:/***将字符串类型的数据转换为JSON格式的数据输出*/publicvoid outJsonString(String str) {getResponse().setContentType("text/javascript;charset=UTF-8");outString(str);}/***将Object类型的数据类型转换为JSON格式数据输出*/publicvoid outJson(Object obj){outJsonString(JSONObject.fromObject(obj).toString());}/***将Object类型的对象转化为JSON数组的格式输出*/publicvoid outJsonArray(Object array){outJsonArray(JSONArray.fromObject(array).toString());}2)服务器把封装好的JSON数据发送到客户端页面,该数据是一段JSON格式的数据,如下:如果想在页面中看到服务器端返回的JSON数据,利用以下的Javascript代码可以将数据显示到客户端页面:实际上Javascript是将服务器端返回的JSON数据赋值给一个JS变量,将JS变量输出即可在页面中显示服务器端返回的数据。

xml与json的区别

xml与json的区别

JSON与XML的区别比较1.定义介绍(1).XML定义扩展标记语言(Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。

XML使用DTD(document type definition)文档类型定义来组织数据;格式统一,跨平台和语言,早已成为业界公认的标准。

XML是标准通用标记语言(SGML) 的子集,非常适合Web 传输。

XML 提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。

(2).JSON定义JSON(JavaScript Object Notation)一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。

可在不同平台之间进行数据交换。

JSON采用兼容性很高的、完全独立于语言文本格式,同时也具备类似于C语言的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)体系的行为。

这些特性使JSON成为理想的数据交换语言。

JSON基于JavaScript Programming Language , Standard ECMA-262 3rd Edition - December 1999 的一个子集。

2.XML和JSON优缺点(1).XML的优缺点<1>.XML的优点A.格式统一,符合标准;B.容易与其他系统进行远程交互,数据共享比较方便。

<2>.XML的缺点A.XML文件庞大,文件格式复杂,传输占带宽;B.服务器端和客户端都需要花费大量代码来解析XML,导致服务器端和客户端代码变得异常复杂且不易维护;C.客户端不同浏览器之间解析XML的方式不一致,需要重复编写很多代码;D.服务器端和客户端解析XML花费较多的资源和时间。

(2).JSON的优缺点<1>.JSON的优点:A.数据格式比较简单,易于读写,格式都是压缩的,占用带宽小;B.易于解析,客户端JavaScript可以简单的通过eval()进行JSON数据的读取;C.支持多种语言,包括ActionScript, C, C#, ColdFusion, Java, JavaScript, Perl, PHP, Python, Ruby等服务器端语言,便于服务器端的解析;D.在PHP世界,已经有PHP-JSON和JSON-PHP出现了,偏于PHP序列化后的程序直接调用,PHP服务器端的对象、数组等能直接生成JSON格式,便于客户端的访问提取;E.因为JSON格式能直接为服务器端代码使用,大大简化了服务器端和客户端的代码开发量,且完成任务不变,并且易于维护。

Python中的XML和JSON处理

Python中的XML和JSON处理

Python中的XML和JSON处理随着网络技术的不断发展,数据交换在各行各业中变得越来越重要。

XML和JSON是两种非常常见的数据交换格式,它们能够以一种结构化的方式表示复杂的数据集合。

在Python中,我们可以很容易地利用XML和JSON库来处理这些不同的数据格式。

在本文中,我们将介绍Python中的XML和JSON处理的一些基本知识和应用。

一、XMLXML(可扩展标记语言)是一种通用的标记语言,用于表示结构化的数据,并允许针对这些数据进行操作。

它的设计目的是传输和存储数据,而不是展示数据。

XML由多个标签组成,每个标签都有一个开始标记和一个结束标记,并且可能包含其他嵌套标签和数据。

Python中的“xml”库提供了许多方法来创建、解析和操作XML文档。

在Python中创建XML文档非常容易,使用“xml.dom.minidom”库中的“Document”类能够轻松地创建。

例如,以下代码段就创建了一个简单的XML文档:```from xml.dom.minidom import Documentdoc = Document()root = doc.createElement('root')doc.appendChild(root)child = doc.createElement('child')root.appendChild(child)child.appendChild(doc.createTextNode('This is a child node.'))```这个示例代码首先创建了一个Document对象,然后创建了一个名为“root”的元素,并将其添加到文档中。

接着,它创建了一个名为“child”的元素,并将其添加为“root”的子级。

最后,它在“child”元素中添加了文本内容。

在Python中读取和解析现有的XML文档也非常容易。

互联网数据交换标准介绍

互联网数据交换标准介绍

互联网数据交换标准介绍互联网时代,数据交换已成为一项必不可少的任务,方便、快捷、安全的数据交换标准也随之涌现。

本文将就互联网数据交换标准作一详细介绍。

一、什么是数据交换?数据交换简单来说就是不同操作系统或不同应用程序之间传递数据的过程,也可以是不同厂商或组织之间进行数据交换的标准。

在互联网中,数据交换主要是指不同计算机系统之间交换数据,以便更好地进行沟通和协作。

二、什么是数据交换标准?数据交换标准是使得不同系统之间数据交换的过程变得简单和标准化的方法。

因为每个不同的系统都有自己的数据格式和接口,所以在不使用数据交换标准的情况下,传递数据就会变得非常困难。

因此,使用数据交换标准可以大幅简化数据交换的过程,使得组织、企业和个人之间可以轻松地共享数据。

三、互联网数据交换标准有哪些?1. XML(可扩展标记语言)XML是一种标准的数据交换格式,它被广泛用于 Web 应用程序和操作系统之间传递数据。

XML数据可以在任何操作系统、应用程序或网络中传递,因为它是一种可扩展标记语言,依靠标签标识数据的类型和属性。

XML的最大优点是具有良好的可读性和可扩展性,同时也非常灵活。

但是,由于数据量比较大,所以传输速度比较慢。

2. JSON(JavaScript 对象表示法)JSON是一种轻量级的数据交换格式,它基于 JavaScript,但现在能够适用于多种编程语言。

与 XML 不同,JSON 是一种更小、更快、更易于解析的数据格式,非常适合于 Web 应用程序和移动应用程序,因为它可以减少传输延迟和网络带宽开销。

3. CSV(逗号分隔值)CSV文件是由逗号分隔的值组成的文件,一般用于在表格程序中使用。

CSV文件可以使用 Excel、OpenOffice 和 Google Spreadsheets 之类的电子表格程序打开。

CSV 的主要优势是文件格式简单,并且它被广泛使用,任何系统都可以支持。

但它也有着一些缺点,例如不支持嵌套结构,所以读取较为复杂的数据可能需要更多工作。

JSON和XML的区别

JSON和XML的区别

JSON和XML的区别JSON 和 XML 都是基于文本的可读格式,独立于编程语言,能够在几乎所有的编程语言中使用。

本节我们就来介绍一下 JSON 和 XML 的区别。

在介绍 JSON 和 XML 的区别之前,我们先来分别介绍一下 JSON 和 XML。

什么是 XML?XML 全称“Extensive Markup Language”,译为“可扩展标记语言”,是一种源自 SGML 的、基于文本的数据格式(XML 是 SGML 的一个子集)。

SGML 全称“Standard Generalized Markup language”,译为“标准通用标记语言”,简称“通用标言”,是一种定义电子文档结构和描述其内容的国际标准语言,是1986 年国际标准化组织出版发布的一个信息管理方面的国际标准。

XML 是一种专门为了存储数据而创建的标记语言,它的编写方式与HTML 非常相似,能够通过不同的标签来标记不同的内容,下面展示了一个简单 XML 数据:1.<?xml version="1.0" encoding="ISO-8859-1"?>2.<note>3.<title>JSON教程</title>4.<author>C语言中文网</author>5.<url>/</url>6.<catalogue>7.<li>JSON是什么?</li>8.<li>JSONP是什么?</li>9.<li>JSON语法规则</li>10.</catalogue>11.</note>XML 旨在传输或保存数据,而不是显示数据,在XML 中,没有预定义标签,其中使用的所有标签都是自定义的,而且所有的标签都由两个部分组成,分别是开始标签(例如<tagname>)和结束标签(例如</tagname>)。

撩课-Web大前端每天5道面试题-Day9

撩课-Web大前端每天5道面试题-Day9

撩课-Web⼤前端每天5道⾯试题-Day9 1. 请⽤⾄少3中⽅式实现数组去重?⽅法⼀: indexOfvar arr1=[1,2,3,4,5,4,3,2,1];function repeat1(arr){for(var i=0,arr2=[];i<arr.length;i++){if(arr2.indexOf(arr[i])==-1){arr2.push(arr[i]);}}return arr2;}⽅法⼆: hashfunction repeat2(arr){// 1. 遍历arr中每个元素,同时声明hashfor(var i=0,hash={};i<arr.length;i++){// hash中是否包含当前元素值的建// 如果不包含,就hash添加⼀个新元素,// 以当前元素值为key,value默认为1if(hash[arr[i]]===undefined){hash[arr[i]]=1;}}// 2. 将hash转为索引var i=0;var arr2=[];for(arr2[i++] in hash);return arr2;}⽅法三: 正则function repeat3(arr){return arr.sort().join(",,").replace(/(^|,,)([^,]+)(,,\2)*/g,"$1$2").split(",,");}console.log(repeat3(arr1));2. HTTP状态码及其含义?1XX:信息状态码100 Continue 继续,⼀般在发送post请求时,已发送了http header之后服务端将返回此信息,表⽰确认,之后发送具体参数信息;2XX:成功状态码200 OK 正常返回信息201 Created 请求成功并且服务器创建了新的资源202 Accepted 服务器已接受请求,但尚未处理3XX:重定向301 Moved Permanently 请求的⽹页已永久移动到新位置。

XML与JSON大PK

XML与JSON大PK

XML与JSON⼤PK导读XML 和 JSON 是现今互联⽹中最常⽤的两种数据交换格式。

XML 格式由 W3C 于 1996 年提出。

JSON 格式由 Douglas Crockford 于2002 年提出。

虽然这两种格式的设计⽬标并不相同,但它们常常⽤于同⼀个任务,也就是数据交换中。

简介XML 和 JSON 是现今互联⽹中最常⽤的两种数据交换格式。

XML 格式由 W3C 于 1996 年提出。

JSON 格式由 Douglas Crockford 于 2002年提出。

虽然这两种格式的设计⽬标并不相同,但它们常常⽤于同⼀个任务,也就是数据交换中。

XML 和 JSON 的⽂档都很完善(RFC 7159、RFC 4825),且都同时具有⼈类可读性human-readable和机器可读性machine-readable。

这两种格式并没有哪⼀个⽐另⼀个更强,只是各⾃适⽤的领域不⽤。

(LCTT 译注:W3C 是互联⽹联盟,制定了各种 Web 相关的标准,如 HTML、CSS 等。

Douglas Crockford 除了制定了 JSON 格式,还致⼒于改进 JavaScript,开发了 JavaScript 相关⼯具 JSLint 和 JSMin)XML 的优点XML 与 JSON 相⽐有很多优点。

⼆者间最⼤的不同在于 XML 可以通过在标签中添加属性这⼀简单的⽅法来存储元数据metadata。

⽽使⽤JSON 时需要创建⼀个对象,把元数据当作对象的成员来存储。

虽然⼆者都能达到存储元数据的⽬的,但在这⼀情况下 XML 往往是更好的选择,因为 JSON 的表达形式会让客户端程序开发⼈员误以为要将数据转换成⼀个对象。

举个例⼦,如果你的 C++ 程序需要使⽤ JSON 格式发送⼀个附带元数据的整型数据,需要创建⼀个对象,⽤对象中的⼀个名称/值对name/value pair来记录整型数据的值,再为每⼀个附带的属性添加⼀个名称/值对。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

JSON与XML的区别比较
目前,在web开发领域,主要的数据交换格式有XML和JSON,对于XML相信每一个web developer都不会感到陌生;相比之下,JSON可能对于一些新步入开发领域的新手会感到有些陌生,也可能你之前已经听说过,但对于XML和JSON的不同之处可能会不怎么了解。

对于在Ajax开发中,是选择XML还是JSON,一直存在着争议,个人还是比较倾向于JSON的,虽然JSON才处于起步阶段,但我相信JSON一定会有很好的发展。

先来看看XML与JSON的优缺点:
[ XML]
使用XML作为传输格式的优势:
1. 格式统一, 符合标准
2. 容易与其他系统进行远程交互, 数据共享比较方便
缺点:
1. XML文件格式文件庞大, 格式复杂, 传输占用带宽
2. 服务器端和客户端都需要花费大量代码来解析XML, 不论服务器端和客户端代码变的异常复杂和不容易维护
3. 客户端不同浏览器之间解析XML的方式不一致, 需要重复编写很多代码
4. 服务器端和客户端解析XML花费资源和时间
[ JSON ]
那么除了XML格式, 还有没有其他格式, 有一种叫做JSON (JavaScript Object Notation) 的轻量级数据交换格式能够替代XML的工作.
优点:
1. 数据格式比较简单, 易于读写, 格式都是压缩的, 占用带宽小
2. 易于解析这种语言, 客户端JavaScript可以简单的通过eval()进行JSON数据的读取
3. 支持多种语言, 包括ActionScript, C, C#, ColdFusion, Java, JavaScript, Perl, PHP,
Python, Ruby等语言服务器端语言, 便于服务器端的解析
4. 在PHP世界, 已经有PHP-JSON和JSON-PHP出现了, 便于PHP序列化后的程序直接调用. PHP服务器端的对象、数组等能够直接生JSON格式, 便于客户端的访问提取.
5. 因为JSON格式能够直接为服务器端代码使用, 大大简化了服务器端和客户端的代码开发量, 但是完成的任务不变, 且易于维护
缺点:
1. 没有XML格式这么推广的深入人心和使用广泛, 没有XML那么通用性
2. JSON格式目前在Web Service中推广还属于初级阶段
数据交换格式比较之关于XML和JSON:
XML:extensible markup language,一种类似于HTML的语言,他没有预先定义的标签,使用DTD(document type definition)文档类型定义来组织数据;格式统一,跨平台和语言,早已成为业界公认的标准。

具体的可以问Google或百度。

相比之JSON这种轻量级的数据交换格式,XML可以称为重量级的了。

JSON : JavaScript Object Notation 是一种轻量级的数据交换格式。

易于人阅读和编写。

同时也易于机器解析和生成。

它基于JavaScript Programming Language , Standard ECMA-262 3rd Edition - December 1999 的一个子集。

JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。

这些特性使JSON成为理想的数据交换语言。

数据交换格式比较之关于轻量级和重量级:
轻量级和重量级是相对来说的,那么XML相对于JSON的重量级体现在哪呢?我想应该体现在解析上,XML目前设计了两种解析方式:DOM和SAX;
DOM是把一个数据交换格式XML看成一个DOM对象,需要把XML文件整个读入内存,这一点上JSON和XML的原理是一样的,但是XML要考虑父节点和子节点,这一点上JSON的解析难度要小很多,因为JSON构建于两种结构:key/value,键值对的集合;值的有序集合,可理解为数组;
SAX不需要整个读入文档就可以对解析出的内容进行处理,是一种逐步解析的方法。

程序也可以随时终止解析。

这样,一个大的文档就可以逐步的、一点一点的展现出来,所
以SAX适合于大规模的解析。

这一点,JSON目前是做不到得。

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

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

主观上来看,JSON更为清晰且冗余更少些。

JSON网站提供了对JSON语法的严格描述,只是描述较简短。

从总体来看,XML比较适合于标记文档,而JSON却更适于进行数据交换处理。

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

实际上,对于大多数web应用来说,他们根本不需要复杂的XML来传输数据,XML 宣称的扩展性在此就很少具有优势;许多Ajax应用甚至直接返回HTML片段来构建动态web页面。

和返回XML并解析它相比,返回HTML片段大大降低了系统的复杂性,但同时缺少了一定的灵活性。

同XML或HTML片段相比,数据交换格式JSON 提供了更好的简单性和灵活性。

在web serivice应用中,至少就目前来说XML仍有不可动摇的地位。

相关文档
最新文档