JavaScript中解析JSON數(shù)據(jù)的三種方法
概述
現(xiàn)在JSON格式在web開發(fā)中越來越受重視,特別是在使用ajax開發(fā)項(xiàng)目的過程中,經(jīng)常需要將json格式的字符串返回到前端,前端解析成JS對象(JSON )。
ECMA-262(E3)中沒有將JSON概念寫到標(biāo)準(zhǔn)中,還好在 ECMA-262(E5)中JSON的概念被正式引入了,包括全局的JSON對象和Date的toJSON方法。
解析JSON數(shù)據(jù)的三種方法
eval()方法
解析JSON數(shù)據(jù)的最常用方法是使用javascript的eval()方法,代碼如下:
function toJson(str){
var json = eval('(' + str + ')');
return json;
}
該方法存在性能和安全方面的問題,不建議使用。
new Function方法
function toJson(str){
var json = (new Function("return " + str))();
return json;
}
JSON.parse()方法
這種方法只支持IE8/Firefox3.5+/Chrome4/Safari4/Opera10 以上版本,這些瀏覽器都已經(jīng)接近W3C標(biāo)準(zhǔn),默認(rèn)實(shí)現(xiàn)了toJSON方法。
function toJson(str){
return JSON.parse(str);
}
json2.js會在瀏覽器原生支持JSON.parse的時候選用原生版本,而且它跟ES5是API兼容的。在ES5還沒完全普及的現(xiàn)狀下,John Resig大神推薦用json2.js主要是為了現(xiàn)在就能用跟ES5兼容的API,日后能平滑過渡到ES5——只要去掉一個import就換過來了。
相關(guān)文章
js調(diào)用webservice構(gòu)造SOAP進(jìn)行身份驗(yàn)證
這篇文章主要介紹了js調(diào)用webservice構(gòu)造SOAP進(jìn)行身份驗(yàn)證的相關(guān)資料,需要的朋友可以參考下2016-04-04JavaScript中如何在一個循環(huán)中等待示例代碼詳解
這篇文章主要介紹了在JavaScript中如何在一個循環(huán)中等待(附代碼示例),下面是如何使用for..of 循環(huán)來迭代一個數(shù)組并在循環(huán)內(nèi)等待,需要的朋友可以參考下2022-08-08javascript 刪除dom對象的事件函數(shù)代碼
本文為《JavaScript高級程序設(shè)計(jì)》第9章中的跨平臺事件中的部分內(nèi)容。2010-04-04通過event對象的fromElement屬性解決熱區(qū)設(shè)置主實(shí)體的一個bug
后臺的熱區(qū)管理中,如果鼠標(biāo)移到熱區(qū)上,會顯示一個提示框,提示框里“設(shè)為主實(shí)體”、“刪除”和“合并”等超鏈接,點(diǎn)擊這些超鏈接可以進(jìn)行各種操作。2008-12-12layui 點(diǎn)擊重置按鈕, select 并沒有被重置的解決方法
今天小編就為大家分享一篇layui 點(diǎn)擊重置按鈕, select 并沒有被重置的解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-09-09js中的preventDefault與stopPropagation詳解
本篇文章主要是對js中的preventDefault與stopPropagation進(jìn)行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助2014-01-01javascript如何使用函數(shù)random來實(shí)現(xiàn)課堂隨機(jī)點(diǎn)名方法詳解
這篇文章主要介紹了javascript如何使用函數(shù)random來實(shí)現(xiàn)課堂隨機(jī)點(diǎn)名方法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07js 只能輸入數(shù)字和小數(shù)點(diǎn)的文本框改進(jìn)版
以前的版本不能輸入退格鍵等功能。2009-04-04