使用Jquery解析Json基礎知識

2021-06-29 14:12:13 字數 2641 閱讀 9750



在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就是滿足本標題描述的字串

//由json字串轉換為json物件

var str='';

var obj = jquery.parsejson(str)

alert("1"+ obj.name);

以上均會輸出結果「john」。

此種方式僅支援標準格式:var str='';

eval函式可以直接將本質符合或者近似符合json格式的字串轉換為json物件,使用方式如:

eval('(' + str + ')'); //其中str就是滿足本標題描述的字串

//由json字串轉換為json物件

var str='';

var obj = eval('(' + str + ')');

alert( obj.name);

以上均會輸出結果「john」。

eval方式可以轉換以下標準和非標準格式字串:

var str="";

var str2='';

var str3="";

還有一種將標準字串轉換為json物件的函式是json.parse(),使用方式如json.parse(str)//其中str就是滿足本標題描述的字串

var str = '';

var obj = json.parse(str);

alert(obj.name);

以上均會輸出結果「john」。

此種方式僅支援標準格式: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 ...