XML(eXtensible Markup Language)是一种可拓展标记语言,是W3C发布的标准。
当使用Ajax发送请求时,需要返回几个数据时,很明显文本数据已经合适了,即时是添加了特殊的分隔符,但分隔符可能导致二义性,这时候该是XML出场的时候了,可以为响应设置头信息Content-Type的值为:text/xml,浏览器取得XML响应后,会创建一个DOM树代替XML文档,能通过DOM树对XML文档进行操作,很多属性以及方法都通用。
可以通过代表XML文档的DOM树提供的各种方法取得XML文档相应里面对应的键值对,即可以获取多个数据。
既然能通过响应返回代表XML的DOM树,当然也能通过请求发送代表XML的DOM树。但是发送XML没有实际意义,XML本身书写就比较繁琐,且跟文本请求比起来,包含同样的信息时,XML发送的数据量明显比问问请求大得多,而且发送XML文档需要用到特殊的工具集来把DOM树转成XML文档。
所以,发送请求时,采用文本键值对比较好;返回响应时,如果只有当个返回数据,就采用文本返回,如果有多个返回数据时,就采用XML文档返回。
JSON(JavaScript Object Notation)是一种轻量级的数据交换语言,其实就一个javascript。
JSON数据可以说是一个无序集合与数组的混合产物,且JSON数据一定以无序集合在最外层开始。大括号({})表示无序集合,中括号([])表示数组,需加上索引才可访问里面的数据,键值对(key:value),集合通过键(key)即可取得下一层的数据对象,数组要通过键(key)加上索引值([index])才能取到下一层的数据对象。
JSON数据其实也就是一个文本,如果个人很熟悉JSON数据格式的时候,可以直接在响应结果中直接返回JSON数据格式的文本。不过JSON的官网上提供了很多主流语言的JSON程序库,使用JSON程序库,可以让程序员使用自己熟悉的语言的数据结构,再通过JSON程序库转化成JSON数据格式。
在浏览器端,可通过eval('(' + request.responseText + ')')函数将JSON数据格式转化成一个JSON数据对象。eval()函数的作用是将一个字符串变成一个对象,在响应文本的两端添加'('和')'是为了让eval()函数自动识别,将返回文本直接转换成JSON对象,以方便取得数据。如果服务器端的响应被修改了,则可能会导致浏览器的javascript运行恶意程序代码,故我们需要使用
JSON解析器,可以通过JSON的官网下载取得,引入head后,可直接使用JSON.parse(request.responseText)解析得JSON对象,具有很高的安全性。
至于如何在XML和JSON之间做出抉择,他们的
共同点是都能返回多个数据,这个可以根据具体开发人员的喜好来选择,一个是重量级数据交互语言,一个是轻量级数据交互语言。
XML的优点:可以轻易表达出复杂的信息。
XML的缺点:包含同样信息时数据量相对庞大,且JS程序员操作起来麻烦。
JSON的优点:包含同样信息时数据量相对小,且JS本身就是javascript对象,JS程序员操作起来很方便。
JSON的缺点:包含的信息数据格式看起来想表格或者数组,直接返回会比较麻烦。如果使用JSON的程序库,又得让服务器程序员学习JSON程序的使用方法。
分享到:
相关推荐
Java实现Xml与json之间相互转换操作的知识点主要包括以下几个方面: 1. Xml与json的定义与区别:Xml是一种标记语言,用来描述和存储数据,具有自我描述性,而json是一种轻量级的数据交换格式,它易于人阅读和编写,...
XML与JSON之间的转换通常在需要在支持XML的系统(如服务器端处理)和JavaScript驱动的客户端应用(更倾向于JSON)之间进行数据交互时发生。转换过程包括两个主要步骤:XML到JSON的序列化和JSON到XML的反序列化。 ...
总结一下,这个C#编写的XML与Json互转类是为了解决在MVC API或WebAPI项目中,同时支持XML和Json数据格式的需求。它使得开发者能够方便地在两种格式间转换,提高代码的可维护性和用户体验,因为客户端可以选择最适合...
在实际应用中,XML与JSON的互转有以下几种常见的场景: 1. **Web服务交互**:许多API使用JSON作为默认的数据交换格式,但有时客户端或服务器端可能需要处理XML数据,此时就需要进行转换。 2. **存储和序列化**:在...
在处理XML与JSON之间的转换时,我们需要借助于额外的库,如Newtonsoft.Json(也称为Json.NET),它是.NET中最流行的JSON库。 首先,让我们了解XML到JSON的转换过程。假设我们有一个名为`Person`的对象,它包含姓名...
03-Java核心类库_XML与JSON(配套工具)。包含fastjson-1.2.70.jar、gson-2.8.6.jar、dom4j-1.6.1.jar、jaxen-1.1-beta-7.jar、xstream-1.3.1.jar。
XML与JSON之间的转换在很多场景下是必要的,例如,当一个系统接收或发送的数据格式为XML,但内部处理或接口调用需要JSON格式时。以下将详细讨论这两种格式的转换方法。 ### XML转JSON 在Java中,可以使用各种库来...
就一个页面,里面都是js,巧妙的实现了xml与json直接的互转 很方便
5. **安全与最佳实践**:在处理XML到JSON的转换时,应注意防止XXE(XML External Entity)攻击,这是一种利用XML解析器漏洞获取服务器敏感信息的攻击方式。确保使用安全配置的XML解析器,并避免解析不受信任的XML...
在Java开发中,XML(可扩展标记语言)和JSON...在`XmlToJson.java`这个工具类中,我们展示了如何利用Jackson库进行XML与JSON之间的转换。这只是一个基础示例,实际项目中可能需要进行更复杂的错误处理和数据验证。
XML与JSON
这篇博文《xml与json互转》可能详细探讨了这一主题,虽然具体内容未给出,但我们可以基于常规知识进行深入讲解。 XML和JSON的转换通常涉及到解析和序列化两个过程。解析是将XML或JSON字符串转化为可操作的数据结构...
总结来说,排版XML与JSON数据是软件开发过程中的重要环节,它能提高代码的可读性和可维护性。FormatXR这样的工具提供了便利的解决方案,使得数据格式化变得高效而准确。对于任何处理这些数据格式的开发者而言,掌握...
在软件开发中,XML常用于配置文件、SOAP协议、数据存储等场景,而JSON则常用于RESTful API的数据交换、前端与后端的数据传递等。选择XML还是JSON,通常取决于具体需求,如数据的复杂性、文件大小、解析速度和开发...
XML以其丰富的结构化特性适用于复杂的数据表示,而JSON因其简洁、易于阅读和解析的特性,常用于前端与后端的数据交互。 XML到JSON的转换通常涉及到以下几个关键知识点: 1. **XML解析**:首先,我们需要解析XML...
**Xstream 操作 Xml 与 Json** Xstream 是一个 Java 库,用于处理 XML 文件的序列化和反序列化,同时也支持将 JavaBean 转换为 JSON 格式。它的核心理念是通过简单的 API 设计,使得 XML 序列化过程变得简洁,无需...
在“Unity3D_42_XML与JSON导出还原场景”中,你可能会学习到以下关键知识点: 1. **序列化Unity对象**:理解如何使用`System.Xml.Serialization`和`Newtonsoft.Json`库将Unity的对象如GameObject、Transform、...
融合了XML与JSON的合成与解析(包括创建、更新、添加、删除、显示等操作)
本文将深入探讨XML与JSON之间的转换,并介绍相关工具和技术。 XML和JSON各有优势。XML提供了丰富的语法,可以定义自定义的标签,支持命名空间,适合处理复杂的结构化数据。然而,XML的解析和生成相对较为繁琐。相比...
它也支持将JSON数据转换为XML,这与我们的转换任务相符。 3. **xstream-1.3.1.jar**:XStream是另一个Java库,它提供了一种简单的方式来序列化和反序列化Java对象为XML。在XML到JSON转换过程中,XStream可能首先...