JS對(duì)象與json字符串相互轉(zhuǎn)換實(shí)現(xiàn)方法示例
本文實(shí)例講述了JS對(duì)象與json字符串相互轉(zhuǎn)換實(shí)現(xiàn)方法。分享給大家供大家參考,具體如下:
今天在面試的時(shí)候,面試官問(wèn)到j(luò)s對(duì)象與json字符串的互轉(zhuǎn)問(wèn)題,由于自己平時(shí)在用的時(shí)候沒(méi)有在意,而且在工作中由于用的較少,沒(méi)有答上來(lái),所以今天特地查查資料復(fù)習(xí)一下, 鞏固一下這方面的知識(shí)。
1、js對(duì)象轉(zhuǎn)換成json字符串
在與后端進(jìn)行交互時(shí),有時(shí)需要把js對(duì)象轉(zhuǎn)換成json字符串格式,這時(shí)我們需要去引用一下json2.js這個(gè)文件,然后調(diào)用JSON.stringify()方法。例如:
var data = new Object(); var jsonData = JSON.stringify(data);
2、json字符串轉(zhuǎn)換成js對(duì)象
在工作中在ajax獲取后端數(shù)據(jù)時(shí),獲取到的是json格式,有時(shí)就需要我們轉(zhuǎn)換成js對(duì)象格式。在這里我們使用jQuery的一個(gè)$.parseJSON()方法將JSON格式的數(shù)據(jù)轉(zhuǎn)換成js對(duì)象格式。例如:
var jsonData = $.getJSON(); var data = $.parseJSON(jsonData);
當(dāng)然,還可以使用JSON.parse()方法,方法同上,但是有的瀏覽器對(duì)JSON.parse()的支持不是很理想,所以在使用時(shí)盡量使用.parseJSON()方法。.parseJSON()方法在瀏覽器支持時(shí)會(huì)返回執(zhí)行JSON.parse()方法的結(jié)果,否則會(huì)返回類似執(zhí)行eval()方法的結(jié)果,具體參考jQuery1.9.1得出:
parseJSON: function( data ) {
// Attempt to parse using the native JSON parser first
if ( window.JSON && window.JSON.parse ) {
return window.JSON.parse( data );
}
if ( data === null ) {
return data;
}
if ( typeof data === "string" ) {
// Make sure leading/trailing whitespace is removed (IE can't handle it)
data = jQuery.trim( data );
if ( data ) {
// Make sure the incoming data is actual JSON
// Logic borrowed from http://json.org/json2.js
if ( rvalidchars.test( data.replace( rvalidescape, "@" )
.replace( rvalidtokens, "]" )
.replace( rvalidbraces, "")) ) {
return ( new Function( "return " + data ) )();
}
}
}
jQuery.error( "Invalid JSON: " + data );
},
這樣就完成了js對(duì)象與JSON字符串的互轉(zhuǎn)了。
PS:這里再為大家推薦幾款比較實(shí)用的json在線工具供大家參考使用:
在線JSON代碼檢驗(yàn)、檢驗(yàn)、美化、格式化工具:
http://tools.jb51.net/code/json
JSON在線格式化工具:
http://tools.jb51.net/code/jsonformat
在線XML/JSON互相轉(zhuǎn)換工具:
http://tools.jb51.net/code/xmljson
json代碼在線格式化/美化/壓縮/編輯/轉(zhuǎn)換工具:
http://tools.jb51.net/code/jsoncodeformat
在線json壓縮/轉(zhuǎn)義工具:
http://tools.jb51.net/code/json_yasuo_trans
更多關(guān)于JavaScript相關(guān)內(nèi)容可查看本站專題:《JavaScript中json操作技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》、《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》
希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。
相關(guān)文章
js基于FileSaver.js 瀏覽器導(dǎo)出Excel文件的示例
本篇文章主要介紹了js基于FileSaver.js 瀏覽器導(dǎo)出Excel文件的示例,具有一定的參考價(jià)值,有興趣的可以了解一下2017-08-08
JS前端開(kāi)發(fā)模擬虛擬dom轉(zhuǎn)真實(shí)dom詳解
這篇文章主要為大家介紹了JS前端開(kāi)發(fā)模擬虛擬dom轉(zhuǎn)真實(shí)dom詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01
JavaScript實(shí)現(xiàn)帶并發(fā)限制的異步調(diào)度器
這篇文章主要為大家詳細(xì)介紹了如何基于JS實(shí)現(xiàn)一個(gè)帶并發(fā)限制的異步調(diào)度器?Scheduler,保證同時(shí)運(yùn)行的任務(wù)最多有N個(gè),感興趣的小伙伴可以了解下2024-03-03
深入淺析JavaScript中的in關(guān)鍵字和for-in循環(huán)
這篇文章主要介紹了JavaScript中的in關(guān)鍵字和for-in循環(huán),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04
JS實(shí)現(xiàn)簡(jiǎn)單的鍵盤打字的效果
本文給大家分享的是使用javascript實(shí)現(xiàn)的簡(jiǎn)單的鍵盤打字效果,十分的簡(jiǎn)單實(shí)用,推薦給有需要的小伙伴參考下。2015-04-04
如何在js代碼中消滅for循環(huán)實(shí)例詳解
for循環(huán)對(duì)大家來(lái)說(shuō)都不陌生,下面這篇文章主要給大家介紹了關(guān)于如何在js代碼中消滅for循環(huán)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-07-07
javascript檢測(cè)瀏覽器的縮放狀態(tài)實(shí)現(xiàn)代碼
這篇文章主要介紹了javascript檢測(cè)瀏覽器的縮放狀態(tài)實(shí)現(xiàn)代碼,需要的朋友可以參考下2014-09-09

