在web資料傳輸過程中,json是以文字,即json字串形式傳遞的,而客戶端接收到的是json物件,所以,json物件和json字串之間的相互轉換、json資料的解析是關鍵。
先明確2個概念例如:
json字串:
var str1 = '';
json物件:
var str2 = ;
可以簡單這樣理解:
json物件是直接可以使用jquery操作的格式,如c#中可以用物件(類名)點出屬性(方法)一樣;
json字串僅僅只是乙個字串,乙個整體,不擷取的話沒辦法取出其中儲存的資料,不能直接使用,除非你只想alert()他;
一、json字串轉換為json物件
要使用上面的str1,必須使用下面的方法先轉化為json物件:
a. parsejson函式
另一種將標準字串轉換為json物件的函式是parsejson(),使用方式如jquery.parsejson(str)//其中str就是滿足本標題描述的字串
以上均會輸出結果「john」。//由json字串轉換為json物件
var str='';
var obj = jquery.parsejson(str)
alert("1"+ obj.name);
此種方式僅支援標準格式:var str='';
eval函式可以直接將本質符合或者近似符合json格式的字串轉換為json物件,使用方式如:
eval('(' + str + ')'); //其中str就是滿足本標題描述的字串
以上均會輸出結果「john」。//由json字串轉換為json物件
var str='';
var obj = eval('(' + str + ')');
alert( obj.name);
eval方式可以轉換以下標準和非標準格式字串:
還有一種將標準字串轉換為json物件的函式是json.parse(),使用方式如json.parse(str)//其中str就是滿足本標題描述的字串var str="";
var str2='';
var str3="";
以上均會輸出結果「john」。var str = '';
var obj = json.parse(str);
alert(obj.name);
此種方式僅支援標準格式:var str='';
特別注意:如果obj本來就是乙個json物件,那麼使用eval()函式轉換後(哪怕是多次轉換)還是json物件,但是使用parsejson()函式處理後會有問題(丟擲語法異常)。
二、將json物件轉換為字串
可以使用tojsonstring()或者全域性方法json.stringify()將json物件轉化為json字串。
例如:var last=obj.tojsonstring(); //將json物件轉化為json字元 或者
var last=json.stringify(obj); //將json物件轉化為json字元
alert(last);
我們通過各種方式將字串轉換為json物件後就是解析他了。
如上面的例子:
var str2 = ;
就可以這樣讀取:
alert(str2.name);//和c#一樣直接往出點…
彈出」 mady」。
我們遇到的json很少有這麼簡單的,比如複雜一點的json物件如:
var str=};
解析用:
alert(str.getuserpostbyidresult.name);//一次點不出來,我多點幾次
彈出:」mady」。
再再複雜一點的如:
var data=" , , , ]}";
如果你想單挑的話,解析用:
alert(dataobj.root[0].name);
彈出:「6200」。
如果你想群挑的話,解析用:
$.each(dataobj.root, function(index, item) );
其中這個「#info」是個div的id。輸入結果如下圖:
注意:本例如果要使用其他轉換函式請更改字串內單引號為雙引號,外引號為單引號。
jQuery解析JSON問題
jquery解析json問題 這幾天在做個專案,使用到了jqeury的ajax,當伺服器端返回json格式資料後,jquery元件居然不能正確解析,用firefox可以看到響應回來的json格式資料。單偏偏程式就是沒有出來資料。1.伺服器響應型別問題 2.伺服器響應輸出流,在關閉之前也進行了flus...
jquery解析json的例子
在伺服器端c 生成json物件 jsonhelp jsonhelp new jsonhelp jsonhelp.successs true jsonhelp.additem titleid 1 jsonhelp.additem uanswer a,b,c jsonhelp.additemok jso...
關於jquery解析json資料
在寫jquery訪問web service的時候需要解析傳回來的json資料時碰到些問題。當我使用 each迴圈資料的時候怎麼都是null無法解析資料一樣,但是資料確確實實的有。上網查了下這方面資料,發現。對於伺服器返回的json字串,如果jquery非同步請求將type 配置屬性 設為 json ...