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