搜尋
首頁web前端js教程jQuery解析Json實例詳解_jquery

本文實例講述了jQuery解析Json的方法。分享給大家供大家參考,具體如下:

前言

在WEB資料傳輸過程中,json是以文本,即字串的輕量級形式傳遞的,而客戶端一般用JS操作的是接收到的JSON對象,所以,JSON對象和JSON字串之間的相互轉換、JSON資料的解析是關鍵。

先明確2個概念例如:

JSON字串:

複製程式碼 程式碼如下:

var str1 = '{ "name": "deyuyi", "sex": "man" }';

JSON物件:

複製程式碼 程式碼如下:

var str2 = { "name": "deluyi", "sex": "man" };

JSON物件是直接可以使用JQuery運算的格式,如C#中可以用物件(類別名稱)點出屬性(方法)一樣;

JSON字串只是一個字串,一個整體,不截取的話沒辦法取出其中儲存的數據,不能直接使用,除非你只想alert()他;

一、JSON字串轉換為JSON物件

要使用上面的str1,必須使用下面的方法先轉換成JSON物件:

A:eval函數

eval函數可以直接將本質符合或近似符合JSON格式的字串轉換為JSON對象,使用方式如:

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


//由JSON字符串转换为JSON对象
var str='{ "name": "John" }';
var obj = eval('(' + str + ')'); 
alert( obj.name);
var str2="{ 'name': 'John' }";
var obj2 = eval('(' + str2 + ')'); 
alert( obj2.name);
var str3="{ name: 'John' }";
var obj3 = eval('(' + str3 + ')'); 
alert( obj3.name);

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

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


var str="{ 'name': 'John' }";
var str2='{ "name": "John" }';
var str3="{ name: 'John' }";

請參考本例下載套件中:JqueryDemo1.html

B:parseJSON函數

另一種將標準字串轉換為JSON物件的函數是parseJSON(),使用方式如jQuery .parseJSON(str)//其中str就是滿足本標題所描述的字串


//由JSON字符串转换为JSON对象
var str='{ "name": "John" }';
var obj = jQuery.parseJSON(str)
alert("1"+ obj.name);

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

此種方式僅支援標準格式:var str='{ "name": "John" }';

請參閱本例下載包中:JqueryDemo2.html

C:JSON.parse函數

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


var str = '{ "name": "mady", "age": "24" }';
var obj = JSON.parse(str);
alert(obj.name);

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

此種方式僅支援標準格式:var str='{ "name": "John" }';

請參閱本例下載包中:JqueryDemo3.html

以上結果一致,均輸出姓名,如下圖:

 

特別注意

:如果obj本來就是一個JSON對象,那麼使用eval()函數轉換後(即使是多次轉換)還是JSON對象,但是使用parseJSON()函數處理後會有問題(拋出語法異常)。

D:Other方式

如果忍不住想犯錯,十分十分想解析非標準、非正規字串,如:


複製程式碼

程式碼如下:

{name:mady,age:23}


複製碼🎜> 程式碼如下:以及其他的你能想到的各種本質正確的非法格式,那麼有擴充庫可以解決

{name:'mady',age:23}

jquery-json擴充庫

下載位址在這裡:http://code.google.com/p/jquery-json/

這個函式庫用來擴充jQuery ,對於JSON 的使用,擴展了兩個函數:toJSON和parseJSONtoJSON 函數用來將一個普通的JavaScript 物件序列化為JSON 物件。

parseJSON函數用來將一個普通的 JavaScript 物件序列化為 JSON 物件too。



var data=$.toJSON({ x: 2, y: 3 }); 
var obj = jQuery.parseJSON(data); 
alert(obj.x); 
var str = {plugin: 'jquery-json', version: 2.3}; 
var data2=$.toJSON(str); 
var obj2 = jQuery.parseJSON(data2); 
alert(obj2.plugin);
以上代碼執行結果如:


 

請參閱本例下載套件中:JqueryDemo5.html

二、將JSON物件轉換為字串

可以使用toJSONString()或全域方法JS​​ON.stringify( )將JSON物件轉換為JSON字串。 例如:



複製代碼

代碼如下:或者

var last=obj.toJSONString(); //将JSON对象转化为JSON字符



三、解析读取JSON

我们通过各种方式将字符串转换为JSON对象后就是解析他了。
如上面的例子:

复制代码 代码如下:

var str2 = { "name": "mady", "sex": "man" };

就可以这样读取:

复制代码 代码如下:

alert(str2.name);//和C#一样直接往出点…

弹出” mady”。
我们遇到的JSON很少有这么简单的,比如复杂一点的JSON对象如:

复制代码 代码如下:

var str={"GetUserPostByIdResult":{"Age":"33","ID":"2server","Name":"mady"}};

解析用:

      alert(str.GetUserPostByIdResult.Name);//一次点不出来,我多点几次

再再复杂一点的如:

复制代码 代码如下:

var data=" { root: [ {'name':'6200','value':'0'}, {'name':'6101','value':'xa'}, 
{'name':'6102','value':'beijing'}, {'name':'6103','value':'haerbin'}]}";


如果你想单挑的话,解析用:

复制代码 代码如下:

alert(dataObj.root[0].name);

弹出:“6200”。

如果你想群挑的话,解析用:


$.each(dataObj.root, function(index, item) {
  $("#info").append(
      "" +index+":"+ item.name + "" + 
      "" +index+":"+ item.value + "");
});


其中这个“#info”是个DIV的ID。输入结果如下图:

 

参见本例下载包中:JqueryDemo4.html

注意:本例如果要使用其他转换函数请更改字符串内单引号为双引号,外引号为单引号。
本文完整实例代码代码点击此处本站下载

以上就是jQuery解析Json实例详解_jquery的内容,更多相关内容请关注PHP中文网(www.php.cn)!


陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
jquery实现多少秒后隐藏图片jquery实现多少秒后隐藏图片Apr 20, 2022 pm 05:33 PM

实现方法:1、用“$("img").delay(毫秒数).fadeOut()”语句,delay()设置延迟秒数;2、用“setTimeout(function(){ $("img").hide(); },毫秒值);”语句,通过定时器来延迟。

axios与jquery的区别是什么axios与jquery的区别是什么Apr 20, 2022 pm 06:18 PM

区别:1、axios是一个异步请求框架,用于封装底层的XMLHttpRequest,而jquery是一个JavaScript库,只是顺便封装了dom操作;2、axios是基于承诺对象的,可以用承诺对象中的方法,而jquery不基于承诺对象。

jquery怎么修改min-height样式jquery怎么修改min-height样式Apr 20, 2022 pm 12:19 PM

修改方法:1、用css()设置新样式,语法“$(元素).css("min-height","新值")”;2、用attr(),通过设置style属性来添加新样式,语法“$(元素).attr("style","min-height:新值")”。

jquery怎么在body中增加元素jquery怎么在body中增加元素Apr 22, 2022 am 11:13 AM

增加元素的方法:1、用append(),语法“$("body").append(新元素)”,可向body内部的末尾处增加元素;2、用prepend(),语法“$("body").prepend(新元素)”,可向body内部的开始处增加元素。

jquery中apply()方法怎么用jquery中apply()方法怎么用Apr 24, 2022 pm 05:35 PM

在jquery中,apply()方法用于改变this指向,使用另一个对象替换当前对象,是应用某一对象的一个方法,语法为“apply(thisobj,[argarray])”;参数argarray表示的是以数组的形式进行传递。

jquery怎么删除div内所有子元素jquery怎么删除div内所有子元素Apr 21, 2022 pm 07:08 PM

删除方法:1、用empty(),语法“$("div").empty();”,可删除所有子节点和内容;2、用children()和remove(),语法“$("div").children().remove();”,只删除子元素,不删除内容。

jquery on()有几个参数jquery on()有几个参数Apr 21, 2022 am 11:29 AM

on()方法有4个参数:1、第一个参数不可省略,规定要从被选元素添加的一个或多个事件或命名空间;2、第二个参数可省略,规定元素的事件处理程序;3、第三个参数可省略,规定传递到函数的额外数据;4、第四个参数可省略,规定当事件发生时运行的函数。

jquery怎么去掉只读属性jquery怎么去掉只读属性Apr 20, 2022 pm 07:55 PM

去掉方法:1、用“$(selector).removeAttr("readonly")”语句删除readonly属性;2、用“$(selector).attr("readonly",false)”将readonly属性的值设置为false。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。