`
sungang_1120
  • 浏览: 309796 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类

AJAX 解析xml 常见定义JSON数据的格式

阅读更多
AJAX 解析xml  常见定义JSON数据的格式



ResultXmlAjax.js

function createXmlHttpRequest(){
var xmlHttp;
try {
xmlHttp = new XMLHttpRequest();
} catch (e) {
var MSXML = 
['MSXML2.XMLHTTP.6.0','MSXML2.XMLHTTP.5.0',
'MSXML2.XMLHTTP.4.0','MSXML2.XMLHTTP.3.0',
'MSXML2.XMLHTTP','Microsoft.XMLHTTP'];
for ( var i = 0; i < MSXML.length; i++) {
try {
xmlHttp = new ActiveXObject(MSXML[i]);
alert(MSXML[i]);
break;
} catch (e) {

} 
}
}
return xmlHttp;
}
function getResultXmlAjax(){
/**
* 1、获取ajax对象XmlHttpRequest
* 
*/
var ajax = createXmlHttpRequest();
/**
* 2、打开请求
*/
ajax.open("post","resultXmlAjax",true);
/**
* 3、
* /**
* application/x-www-form-urlencoded就是:jsp  form enctype 属性
* 默认的
* <form action="" enctype="application/x-www-form-urlencoded"></form>
* 设置MIME类型 如果是post提交
* 需将Content-type的首部设置为application/x-www-form-urlencoded
* 他会告知服务器正在发送数据  并且数据已经符合URL编码了
*/
ajax.setRequestHeader("Content-type","application/x-www-form-urlencoded");
/**
* 当状态改变时 会调用onreadystatechange属性 指定回调函数
*/
/**
* readyState
* 0代表初始化
* 1代表正在加载...open方法一调用 但是send方法还没调用
* 2代表以加载完毕 send已被调用 请求已经开始
* 3代表交互中...服务器正在发送相应
* 4代表完毕...相应发送完毕 并且我们ajax对象可以通过responseText获取返回数据
*/
//制定相应处理函数
ajax.onreadystatechange= function (){
//对象状态
if(ajax.readyState == 4){
/**
* status
* 在XmlHttpRequest对象中 服务器发送的状态码都保存在status属性中
* 可以通过把这个值和200、304比较 可以确保服务器是否
* 已发送了一个成功的相应
*/
//信息已成功返回 200 没有被修改304
if (ajax.status=='200' || ajax.status == '304') {
//处理信息数据
//alert(111);
//alert(ajax.responseText);
/**
* responseXML
* 获取后台xml格式的数据
*/
var dom = ajax.responseXML;
//获取根节点
var root = dom.lastChild;
//获取tag
var users = root.getElementsByTagName("user");
for ( var i = 0; i < users.length; i++) {
var user = users[i];
var id = user.getAttribute("userId");
alert(id);
var name = user.lastChild.lastChild.nodeValue;
alert(name);
}
}
}
};
/**
* 发送Send
*/
ajax.send("id=001");
}


/**
* JSON
* 
*/
var user1 = new Object();
user1.name = "张三";
user1.password = "123456";
//alert(user1.name);

var user2 = {};
user2.name = "张三";
user2.password = "123456";
//alert(user2.name);

var user3 = {"name":"张三","password":"123456"};
//var user3 = ({"name":"张三","password":"123456"});
//alert(user3.name);

function evalObject(s){
return eval("("+s+")");
}
//这种不加()是错的  但是可以
//var user4rStr = '{"name":"张三","password":"123456"}';
//这种也可解析
//var user4 = evalObject(user4rStr);
//必须加()才能解析
var user4rStr = '({"name":"张三","password":"123456"})';
var user4 = eval(user4rStr);
//alert(user4.name);

//数组  列表
var arr = '[{"name":"张三","password":"123456"},{"name":"李四","password":"123456"}]';
var users = evalObject(arr);
alert(users[0].name);
alert(users[1].name);
alert(users[0].password);
alert(users[1].password);

 
resultXmlAjax.jsp

<body>
<input type="button" value="请求" onclick="getResultXmlAjax();">
</body>

 

ResultXmlAjax :Servlet

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
response.setContentType("text/xml");
PrintWriter out = response.getWriter();
StringBuffer buffer = new StringBuffer();
buffer.append("<root>")
.append("<user userId = '1'>")
.append("<name>张三</name>")
.append("</user>")
.append("<user userId = '2'>")
.append("<name>王五</name>")
.append("</user>")
.append("</root>");
out.print(buffer.toString());
}

 

 

分享到:
评论

相关推荐

    Ajax 接收服务器返回的json响应方法

    JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式。它基于 ECMAScript 规范的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的...

    XML 讲解和分析

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

    Ajax中数据传递的另一种模式 javascript Object Notation思想(JSON)

    一位资深的软件工程师Douglas Crock ford 开发了一个内建于 javascript 的数据格式,称为javascript 对象表示(JSON,javascript Object Notation),意思是直接使用Ajax对象来传递信息,可以读作“Jason”。...

    JSONRPC2:一组用于编码/解码 JSON RPC 消息的类:用于解析和序列化 JSON-RPC 2.0 请求/响应的类。 通过方法访问消息部分。-matlab开发

    JSON 格式广泛用于应用程序中的数据交换,对于 Ajax 和 Web2.0 的巨大成功至关重要。 (JSONlab 定义) 消息队列提供异步通信协议,意味着消息的发送方和接收方不需要同时与消息队列交互。 放置在队列中的消息会...

    基于j2ee的ajax宝典

    第1部分 初识Ajax······ 1 第1章 Ajax入门··········· 2 1.1 重新思考Web应用····· 2 ...4.3.3 将XML数据绑定到表格输出········· 134 4.4 DTD与Schema········ 137

    JAVA上百实例源码以及开源项目

     Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...

    最新Python3.5零基础+高级+完整项目(28周全)培训视频学习资料

    Json与pickle数据序列化 软件目录结构规范 本周作业 第5周 心灵分享 ATM存钱取钱案例剖析 模块定义、导入、优化详解 内置模块详解之time与datetime模块 内置模块详解之Range模块 内置模块详解之OS模块 内置模块...

    JAVA上百实例源码以及开源项目源代码

     Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...

    java开源包1

    Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...

    java开源包11

    Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...

    java开源包2

    Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...

    java开源包3

    Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...

    java开源包6

    Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...

    java开源包5

    Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...

    java开源包10

    Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...

    java开源包4

    Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...

    java开源包8

    Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...

    java开源包7

    Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...

    java开源包9

    Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...

    java开源包101

    Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash 用来计算 MD5、SHA 哈希算法的 Java 类库,支持 "MD5", "SHA", "SHA-1", "SHA-256", "SHA-384", "SHA-512". 高性能RPC...

Global site tag (gtag.js) - Google Analytics