Jquery ajax方法解析返回的json資料

2021-06-18 17:29:08 字數 868 閱讀 3445

最近在用jquery的ajax方法傳遞接收json資料時發現乙個問題,那就是返回的data資料,有時候可以直接作為json資料使用,可有時候又不行。查了些資料,解釋如下:

$.ajax(

else if(ajaxobj.status=="1")//未繫結微博

return true;

},error:function(ajaxobj)

});

先說明第一種情況:

能夠直接 data.屬性名訪問的情況,伺服器端**一定是直接return的乙個常量字串。 

什麼是常量字串呢,常量字串就是指直接用「」組成的字串,沒有定義string 變數直接把一串「」print到前台的情況,就可以直接data.屬性名訪問,而且jquery端只要寫success就可以拿到。 

下面是造成要eval並且不能進入success的原因:

這種情況是因為伺服器端向外print的時候是乙個string物件,通常此類問題在我的**裡是因為後台json比較複雜,在組織的時候我用到了stringbuffer,然後最後print的時候print的是stringbuffer物件的tostring,所以就相當於print了乙個string物件 

這種情況下jquery的ajax方法就不會進入success方法,只能用complete接收,並且想要解析data裡的json資料的話,必須對data.responsetext進行eval ()或者 $.parsejson();

除此兩點,還有需要注意的是,如果你使用的是jq1.4,那麼他對json的格式有著更嚴格的要求,所有的key和屬性都要用雙引號標註起來,雖然key不用雙引號原生的js是允許的,但是jq1.4似乎有這個要求。

以上是我個人的想法跟理解,若有不同見解歡迎指教.

Jquery ajax方法分析

jquery.ajax options 有很多選項,介紹其中的幾個 datatype 想從伺服器得到哪種型別的資料。xml,html,script,json,jsonp,text success 請求成功後的處理函式 type 以post或get的方式請求。預設get。put和delete也可以用,...

Jquery ajax方法分析(二)

訪問ws,而web方法再是字串返回型別。這次通過response來響應請求。所處環境 net3.5,而webservice 不再新增修飾標籤 system.web.script.services.scriptservice 一 hello ws webmethod public void hello...

Jquery ajax方法分析(一)

jquery.ajax options 有很多選項,介紹其中的幾個 datatype 想從伺服器得到哪種型別的資料。xml,html,script,json,jsonp,text success 請求成功後的處理函式 type 以post或get的方式請求。預設get。put和delete也可以用,...