本文实例讲述了jQuery解析返回的xml和json方法。分享给大家供大家参考,具体如下:
一、jQuery 解析ajax请求返回的xml格式的数据
1、发送ajax请求
<script type="text/JavaScript">
function jqxml(){
$.ajax({
url:"http://localhost:18080/servlet/Servlet1",
// 请求方式
type:"post",
// 服务器返回的数据的格式,常用的有 text/xml/json
dataType:"xml",
data:{age:1212},
success:function(data){
// 这里获取的data就是一个xml对象,这个对象可以按照dom树格式来解析
var name=$(data).find("infos").find("info").each(function(){
alert($(this).find("name").text());
alert($(this).find("age").text());
});
},
error:function (edata){
alert(edata);
}
});
};
</script>2、servlet 端返回的值
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
String aaa= request.getParameter("age");
System.out.print("ajax 数据:"+aaa);
// 向客户端响应信息
response.setCharacterEncoding("GBK");
response.setContentType("text/xml");
PrintWriter out= response.getWriter();
out.print("<?xml version="1.0" encoding="GBK"?>");
out.println("<infos>");
out.println("<info>");
out.println("<name>"+"name1"+"</name>");
out.println("<age>"+12+"</age>");
out.println("</info>");
out.println("<info>");
out.println("<name>"+"name11"+"</name>");
out.println("<age>"+112+"</age>");
out.println("</info>");
out.println("</infos>");
}二、jquery 解析返回的json 格式的数据,这里是返回的json对象格式,如果返回的是json数组格式,就是js数组,所以按照js数组获取
1、ajax 请求以及解析过程
<script type="text/javascript">
function jqxml(){
$.ajax({
url:"http://localhost:18080/servlet/Servlet3",
// 请求方式
type:"post",
// 服务器返回的数据的格式,常用的有 text/xml/json
dataType:"json",
data:{age:1212},
success:function(data){
// 通过eval() 函数将字符串转化为js对象,如果返回的是json对象则eval() 函数不处理,如果返回的是json字符串则进行转化
// 注意这样写有时有问题,因为已经在ajax中定义了返回的是json对象而在使用eval() 来转化就有可能报错,所以要吗把json 换成text要吗把eval去了直接使用data
var json= eval("("+data+")");










