Ajax返回数据的3种格式——HTML、XML、JSON

1、 数据格式提要
在服务器端Ajax是一门与语言无关的技术。在业务逻辑层使用何种服务器端语言都可以。
从服务器端接收数据的时候,那些数据必须以浏览器能够理解的格式来发送,服务器端的编程语言只能以如下3种格式返回数据——XML、JSON、HTML。

2、 解析HTML
HTML由一些普通的文本组成,如果服务器通过XMLHttpRequest对象来发送HTML,文本将存储在ResponseText属性中。
不必从ResponseText属性中读取数据,因为它本身就是希望的数据格式,可以直接将它插入页面中。
插入HTML代码最简单的方法是更新这个元素的innerHTML属性。
优点:
(1)从服务器端发送的HTML代码在浏览器端不需要用JavaScript进行解析;
(2)HTML的可读性好。
(3)HTML代码与innerHTML属性搭配,效率高。
缺点:
(1)若需要通过Ajax更新一篇文档的多个部分,HTML不合适。

(2)innerHTML并非DOM标准。

3、解析XML

优点:
(1)XML是一种通用的数据格式。
(2)不必把数据强加到已定义好的格式中,而是要为数据自定义合适的标记。
(3)利用DOM可以完全掌控文档。
缺点:
(1)如果文档来自于服务器,就必须保证文档含有正确的首部信息,若文档类型不正确,那么requestXML属性将是空的。
(2)当浏览器接收到长的XML文件后,DOM解析可能会很复杂。

4、解析JSON
JSON是一种简单的数据格式,比XML更加轻巧。JSON 是JavaScript原生格式,这意味着在javascript中处理JSON数据不需要任何特殊的API或者工具包。
JSON的规则很简单:对象是一个无序的 “名称/值”对集合,一个对象以“{”(左括号)开始,以“}”(右括号)结束,每一个名称后面跟一个“:”(冒号),名称/值之间用逗号分隔开。
JSON用冒号而不是等号来赋值。每一条赋值语句用逗号分开。整个对象用大括号封装起来,可用大括号分级嵌套数据。
对象描述中存储的数据可以是字符串,数字或布尔值,对象描述也可存储函数,即对象的方法。
JSON只是一种文本字符串,它被存储在responseText属性中。
为了读取存储在responseText属性中的JSON数据,需要用到javascript的eval()语句,eval函数会把一个字符串当做它的一个参数,然后这个字符串会被当做javascript代码来执行,因为JSON的字符串就是javascript代码构成的,所以它本身是可以执行的。
JSON提供了json.js包后,使用parseJSON()方法可以将JSON对象解析为js对象。
优点:
(1)作为一种数据传输格式,JSON与XML很相似,但是它更加灵巧。
(2)JSON不需要从服务器端发送含有特定内容类型的首部信息。
缺点:
(1)语法过于严谨。
(2)代码不易读。
(3)eval函数存在风险。
注意:若从服务器端返回json字符串,则属性名必须使用双引号(需要转义),不能使用单引号。
Java对象列表转换为JSON对象数组,并转为字符串:

JSONArray jsonArray = JSONArray.fromObject(list);
String jsonArrayStr = jsonArray.toString();
把Java对象转换成JSON对象,并转化为字符串:

JSONObject jsonObject = JSONObject.fromObject(obj);
String jsonObjectStr = jsonObject.toString();

5、三种格式的对比总结

(1)如果应用程序不需要与其它应用程序共享数据的时候,使用HTML片段来返回数据最简单。
(2)如果数据需要重用,JSON数据是个不错的选择,其在性能和文件大小方面有一定优势。
(3)当远程应用程序未知时,使用XML文档是首选,因为XML是web服务的领域的“世界语言”。
————————————————
版权声明:本文为CSDN博主「筱葭」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zhouziyu2011/article/details/52900024

猜你喜欢

转载自blog.csdn.net/lcywan/article/details/114447978