亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

jQuery解析返回的xml和json方法詳解

2019-11-19 18:08:07
字體:
來源:轉載
供稿:網友

本文實例講述了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 端返回的值

@Overrideprotected 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+")");    var age1=json.age;    var name1=json.name;   alert(age1+""+name1);  },  error:function (edata){   alert(edata);  } });};</script>

2、 servlet 返回的json格式數據

protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {  // 向ajax 返回json格式的數據  String aaa = request.getParameter("age");  System.out.print("ajax 數據:" + aaa);  // 向客戶端響應信息  response.setCharacterEncoding("GBK");  response.setContentType("text/json");  PrintWriter out = response.getWriter();  // 這里使用 json 對象的格式  String stu = "{age:12,name:name12}";  out.print(stu);  out.flush();  out.close();}

注意:在使用ajax請求返回 json 數據的時候遇到了如下的問題:

1、后臺返回的是json 格式的字符串:

String stu = "{/"age/":/"12/",/"name/":/"whd/"}";

大家看到這些轉義字符,會問 干嘛寫這么麻煩,看看就知道: jquery 1.4以后對json格式變嚴格了

也就是說必須要這種格式的

{"鍵":"值","鍵":"值"};

像原來的

{鍵:值,鍵:值}
{'鍵':'值','鍵':'值'}

這種都是錯誤的,不合標準,所以jquery返回error

2、這個問題要注意,我自己 寫這篇文章 時上面的那些代碼都是沒問題的后來使用發現有問題了,問題是什么那:

① 、使用ajax請求后臺返回json格式的字符串,之前在ajax請求的dataType="json" 時 返回的數據使用 eval("("++")") 來轉化沒問題,之前也有注釋解釋說:

通過eval() 函數將字符串轉化為js對象,如果返回的是json對象則eval() 函數不處理,如果返回的是json字符串則進行轉化,但現在的情況是如果dataType="json"則eval() 就報錯。而可以直接使用success:function(data) 中的data 這個json對象。
② 、使用ajax請求后臺返回json格式字符串,而如果dataType='text' 則需要使用eval() 來將 json格式的字符串轉化為json 對象。
③ 、如果使用的是純js 則返回的json字符串需要使用 eval() 來轉化為json對象,而如果是jquery 等框架像 ajax中定義dataType="json" 這樣的話在傳遞的過程中已經將json格式的字符串轉化為了json 對象,就沒必要使用eval() 來轉化。

在貼吧中有人也問這樣的問題,其中一個回答如下:

對于這個問題:“后臺調用了jsonarray.fromobject (list集合)   是不是這樣就是json對象了  前臺就不要 eval 了”

首先說明這樣不是json對象,返回的是一個json格式的字符串,如果你前端用的是純js,就要eval一下,但如果有用到jq框架等,它會幫你自動轉成json對象,就不用eval了。

注:eval方法不是轉json對象的意思,而是將字符串轉成可執行的js代碼。
如:對于一個字符串“alert('hello world')",eval這個字符串就能執行了。

總結:

在后臺返回的是json格式的字符串的前提下

如果前臺獲取的是 json格式的字符串則需要使用 eval() 或JSON.parse(str) 等方法將字符串轉化為json 對象,其實也就是js對象

如果前臺使用了jq等框架并定義了返回的數據類型,如ajax中如果定義dataType='json' 則后臺數據傳過來前臺會自動轉化為json對象即js對象  就不用我們使用eval() 等方法進行轉化。

PS:這里再為大家提供幾款關于xml與json操作的在線工具供大家參考使用:

在線XML/JSON互相轉換工具:
http://tools.VeVB.COm/code/xmljson

在線格式化XML/在線壓縮XML
http://tools.VeVB.COm/code/xmlformat

XML在線壓縮/格式化工具:
http://tools.VeVB.COm/code/xml_format_compress

在線JSON代碼檢驗、檢驗、美化、格式化工具:
http://tools.VeVB.COm/code/json

JSON在線格式化工具:
http://tools.VeVB.COm/code/jsonformat

在線json壓縮/轉義工具:
http://tools.VeVB.COm/code/json_yasuo_trans

更多關于jQuery相關內容感興趣的讀者可查看本站專題:《jQuery操作xml技巧總結》、《jQuery操作json數據技巧匯總》、《jquery中Ajax用法總結》、《jQuery擴展技巧總結》、《jQuery常用插件及用法總結》、《jQuery常見經典特效匯總》及《jquery選擇器用法總結

希望本文所述對大家jQuery程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚州成人av在线| 亚洲跨种族黑人xxx| 国产精品免费视频久久久| 精品中文字幕在线2019| 亚洲视频777| 欧美国产在线电影| 亚洲精品999| 九九视频直播综合网| 国产999在线| 国产91色在线免费| 国产精品一二三在线| 久久不射热爱视频精品| 尤物九九久久国产精品的分类| 欧美日韩成人免费| 国产v综合ⅴ日韩v欧美大片| 在线日韩精品视频| 热久久免费视频精品| 亚洲人成网在线播放| 亚洲日本欧美中文幕| 精品国偷自产在线视频| 亚洲精品久久久久| 狠狠躁夜夜躁久久躁别揉| 91久久久久久久久久久久久| 久久天天躁狠狠躁夜夜躁| 色中色综合影院手机版在线观看| 日韩精品中文字幕在线播放| 亚洲理论电影网| 欧美成人免费va影院高清| 538国产精品一区二区免费视频| 亚洲区bt下载| 欧美日韩午夜视频在线观看| 92看片淫黄大片欧美看国产片| 国产欧美日韩精品丝袜高跟鞋| 亚洲男子天堂网| 日韩精品免费一线在线观看| 亲爱的老师9免费观看全集电视剧| 国产91|九色| 欧美人交a欧美精品| 欧美一级淫片videoshd| 亚洲精品成人免费| 亚洲午夜久久久影院| 久久99热这里只有精品国产| 欧美日韩国产激情| 热re91久久精品国99热蜜臀| 日韩成人av一区| 久久精品亚洲一区| 欧美日韩国产91| 亚洲欧美在线x视频| 日韩成人av网址| 日韩免费视频在线观看| 亚洲女同性videos| 国产精品一区二区三区免费视频| 成人在线免费观看视视频| 亚洲在线免费看| 久久久免费精品| 岛国av午夜精品| 91国语精品自产拍在线观看性色| 久久影视电视剧免费网站清宫辞电视| 中文字幕欧美在线| 在线看日韩欧美| www.午夜精品| 亚洲日本欧美中文幕| 亚洲女成人图区| 久久亚洲春色中文字幕| 成人网在线观看| 午夜精品久久久99热福利| 精品国产乱码久久久久酒店| 日产日韩在线亚洲欧美| 亚洲精品国产拍免费91在线| 欧美中文在线字幕| 亚洲国产婷婷香蕉久久久久久| 亚洲xxx自由成熟| 狠狠爱在线视频一区| 久久久电影免费观看完整版| 97在线观看视频| 欧美性生交xxxxx久久久| 色婷婷综合成人| 一本大道久久加勒比香蕉| 日韩专区在线播放| 欧美精品在线网站| 国产97在线播放| 成人激情在线观看| 国产亚洲激情在线| 欧美日韩成人网| 日本精品久久中文字幕佐佐木| 成人av电影天堂| 最近2019年日本中文免费字幕| 欧美日韩不卡合集视频| 亚洲精品欧美极品| 精品久久久久久久久久国产| 高清一区二区三区四区五区| 欧美性视频精品| 欧美日韩精品国产| 欧美片一区二区三区| 欧美激情一级精品国产| 欧美性xxxxxx| 亚洲第一精品电影| 欧美精品午夜视频| 日韩hd视频在线观看| 日韩av中文在线| 国产美女主播一区| 黑人巨大精品欧美一区免费视频| 精品国产福利视频| 久久精品国产久精国产一老狼| 国产一区二区三区在线免费观看| 欧美日本中文字幕| 日韩高清电影免费观看完整版| 日韩久久午夜影院| 久久综合久中文字幕青草| 日本精品久久电影| 日本韩国欧美精品大片卡二| 欧美极品在线视频| 日本老师69xxx| 日韩av电影国产| 国产亚洲精品美女久久久久| 日韩av资源在线播放| 国产欧亚日韩视频| 欧美日韩一区二区三区| 国产免费一区二区三区在线观看| 欧美孕妇与黑人孕交| 亚洲欧美在线播放| 精品小视频在线| 韩日欧美一区二区| 日韩69视频在线观看| 成人天堂噜噜噜| 亚洲精品少妇网址| 国产视频丨精品|在线观看| 草民午夜欧美限制a级福利片| 色一区av在线| 国产精品视频成人| 亚洲系列中文字幕| 欧美激情乱人伦| 欧美猛交免费看| 亚洲无av在线中文字幕| 高潮白浆女日韩av免费看| 亚洲成人激情在线观看| 国产免费一区二区三区在线能观看| 中文国产成人精品久久一| 欧美日韩国产一区二区三区| 久久婷婷国产麻豆91天堂| 国产精品欧美亚洲777777| 国产精品福利在线观看| 一个人看的www欧美| 久久亚洲国产精品成人av秋霞| 亚洲情综合五月天| 777国产偷窥盗摄精品视频| 亚洲精品丝袜日韩| 91大神在线播放精品| 欧美美女操人视频| 日韩有码在线观看| 欧美在线播放视频| 国产美女精品免费电影| 欧美一区二区三区艳史| 一区二区三区在线播放欧美| 91在线免费视频| 国产精品亚洲第一区| 91高清视频免费| 理论片在线不卡免费观看| 亚洲一区精品电影| 在线精品播放av| 精品偷拍一区二区三区在线看| 亚洲二区在线播放视频| 亚洲xxx大片| 久久久伊人欧美|