JS對象與json字符串相互轉(zhuǎn)換實(shí)現(xiàn)方法示例
本文實(shí)例講述了JS對象與json字符串相互轉(zhuǎn)換實(shí)現(xiàn)方法。分享給大家供大家參考,具體如下:
今天在面試的時候,面試官問到j(luò)s對象與json字符串的互轉(zhuǎn)問題,由于自己平時在用的時候沒有在意,而且在工作中由于用的較少,沒有答上來,所以今天特地查查資料復(fù)習(xí)一下, 鞏固一下這方面的知識。
1、js對象轉(zhuǎn)換成json字符串
在與后端進(jìn)行交互時,有時需要把js對象轉(zhuǎn)換成json字符串格式,這時我們需要去引用一下json2.js這個文件,然后調(diào)用JSON.stringify()
方法。例如:
var data = new Object(); var jsonData = JSON.stringify(data);
2、json字符串轉(zhuǎn)換成js對象
在工作中在ajax獲取后端數(shù)據(jù)時,獲取到的是json格式,有時就需要我們轉(zhuǎn)換成js對象格式。在這里我們使用jQuery的一個$.parseJSON()
方法將JSON格式的數(shù)據(jù)轉(zhuǎn)換成js對象格式。例如:
var jsonData = $.getJSON(); var data = $.parseJSON(jsonData);
當(dāng)然,還可以使用JSON.parse()
方法,方法同上,但是有的瀏覽器對JSON.parse()
的支持不是很理想,所以在使用時盡量使用.parseJSON()
方法。.parseJSON()
方法在瀏覽器支持時會返回執(zhí)行JSON.parse()
方法的結(jié)果,否則會返回類似執(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對象與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錯誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》
希望本文所述對大家JavaScript程序設(shè)計有所幫助。
相關(guān)文章
Javascript中定義方法的另類寫法(批量定義js對象的方法)
用了很多的Javascript框架,偶爾也會去看一下框架的源碼,經(jīng)常會看到這樣的代碼。2011-02-02VSCode Webview中實(shí)現(xiàn)點(diǎn)擊下載圖片的基本流程
這篇文章主要介紹了VSCode Webview中如何實(shí)現(xiàn)點(diǎn)擊下載圖片,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-04-04JavaScript類型檢測之typeof 和 instanceof 的缺陷與優(yōu)化
在javascript中,typeof 和 instanceof 是用來判斷數(shù)據(jù)類型比較通用的兩個方法,這篇文章的目的是通過對這兩個方法介紹來分析其存在的不足并提出優(yōu)化方案2016-01-01JS 循環(huán)li添加點(diǎn)擊事件 (閉包的應(yīng)用)
這篇文章主要介紹了js循環(huán)li添加點(diǎn)擊事件 (閉包的應(yīng)用)的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-12-12JSON 數(shù)據(jù)詳解及實(shí)例代碼分析
這篇文章主要介紹了JSON 數(shù)據(jù)詳解及實(shí)例代碼分析的相關(guān)資料,需要的朋友可以參考下2017-01-01javascript用defineProperty實(shí)現(xiàn)簡單的雙向綁定方法
這篇文章主要介紹了javascript用defineProperty實(shí)現(xiàn)簡單的雙向綁定方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04