本文實例講述了JS對象與json字符串相互轉換實現方法。分享給大家供大家參考,具體如下:
今天在面試的時候,面試官問到js對象與json字符串的互轉問題,由于自己平時在用的時候沒有在意,而且在工作中由于用的較少,沒有答上來,所以今天特地查查資料復習一下, 鞏固一下這方面的知識。
1、js對象轉換成json字符串
在與后端進行交互時,有時需要把js對象轉換成json字符串格式,這時我們需要去引用一下json2.js這個文件,然后調用JSON.stringify()
方法。例如:
var data = new Object(); var jsonData = JSON.stringify(data);
2、json字符串轉換成js對象
在工作中在ajax獲取后端數據時,獲取到的是json格式,有時就需要我們轉換成js對象格式。在這里我們使用jQuery的一個$.parseJSON()
方法將JSON格式的數據轉換成js對象格式。例如:
var jsonData = $.getJSON(); var data = $.parseJSON(jsonData);
當然,還可以使用JSON.parse()
方法,方法同上,但是有的瀏覽器對JSON.parse()
的支持不是很理想,所以在使用時盡量使用.parseJSON()
方法。.parseJSON()
方法在瀏覽器支持時會返回執行JSON.parse()
方法的結果,否則會返回類似執行eval()
方法的結果,具體參考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字符串的互轉了。
PS:這里再為大家推薦幾款比較實用的json在線工具供大家參考使用:
在線JSON代碼檢驗、檢驗、美化、格式化工具:
http://tools.jb51.net/code/json
JSON在線格式化工具:
http://tools.jb51.net/code/jsonformat
在線XML/JSON互相轉換工具:
http://tools.jb51.net/code/xmljson
json代碼在線格式化/美化/壓縮/編輯/轉換工具:
http://tools.jb51.net/code/jsoncodeformat
在線json壓縮/轉義工具:
http://tools.jb51.net/code/json_yasuo_trans
更多關于JavaScript相關內容可查看本站專題:《JavaScript中json操作技巧總結》、《JavaScript查找算法技巧總結》、《JavaScript錯誤與調試技巧總結》、《JavaScript數據結構與算法技巧總結》、《JavaScript遍歷算法與技巧總結》及《JavaScript數學運算用法總結》
希望本文所述對大家JavaScript程序設計有所幫助。
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com