一、jquery 解析ajax請求返回的xml格式的資料
1、傳送ajax請求
2、servlet 端返回的值
二、jquery 解析返回的json 格式的資料,這裡是返回的json物件格式,如果返回的是json陣列格式,就是js陣列,所以按照js陣列獲取
1、ajax 請求以及解析過程
2、 servlet 返回的json格式資料
}注意:在使用ajax請求返回 json 資料的時候遇到了如下的問題:
1、後台返回的是json 格式的字串:string stu = "";
也就是說必須要這種格式的
;像原來的
這種都是錯誤的,不合標準,所以jquery返回error
1、使用ajax請求後台返回json格式的字串,之前在ajax請求的datatype="json" 時 返回的資料使用 eval("("++")") 來轉化沒問題,之前也有注釋解釋說:
通過eval() 函式將字串轉化為js物件,如果返回的是json物件則eval() 函式不處理,如果返回的是json字串則進行轉化,但現在的情況是如果datatype="json"則eval() 就報錯。而可以直接使用success:function(data) 中的data 這個json物件。
2、使用ajax請求後台返回json格式字串,而如果datatype='text' 則需要使用eval() 來將 json格式的字串轉化為json 物件。
3、如果使用的是純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() 等方法進行轉化。
基於jQuery解析XML的外掛程式
這個是前段時間寫的,那時候還沒了解js模版這一概念 等有時間再修改下,現在配置比較麻煩點 大體的目標就是獲取返回的xml然後轉換成html 這個不是很難的東西 但是因為後端開發人員對js不熟悉,而且很多頁面需要返回不同的xml,所以為了圖方便就簡單的封裝成個jquery外掛程式 廢話不多說直接上 這...
JQuery載入並解析XML
致謝!1 簡述 xml extensible markup language 即可擴充套件標記語言,與html一樣,都是屬於sgml標準通用語言。2 content type 很多情況下xml檔案不能正常解析都是由於content type沒有設定好。如果content type本身就是乙個xml檔...
JQuery的AJAX載入XML並解析
1,content type 很多時候無法解析就是content type的問題。如果本身就是xml檔案,請跳過這一步 動態生成的xml一定要將其設定為text xml,否則預設就是text html也就是普通的文字了。常見語言的content type設定 code header content ...