91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JSON怎么在Javascript中使用

發布時間:2021-01-15 15:56:56 來源:億速云 閱讀:116 作者:Leah 欄目:web開發

JSON怎么在Javascript中使用?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

 JSON 和XML比較

json的長度和xml比起來更加短小

json讀取速度更快

json可以使用JavaScript的內置方法直接進行解析,轉化成javascript對象,非常方便。

在Javascript使用eval將接送轉化為json對象

var jsonData = '{"persons":{"name":"成龍","age":58},{"name":"吳京","age":33},"name":"甄子丹","age":44}';
var jsonObj = eval('('+jsonData+')');
//訪問json對象數組的第一個對象的name屬性
console.log(jsonObj.persons[0].name);

在Javascript使用JSON.parse將接送轉化為json對象

var jsonData = '{"persons":{"name":"成龍","age":58},{"name":"吳京","age":33},"name":"甄子丹","age":44}';
var jsonObj = JSON.parse(jsonData);
//訪問json對象數組的第一個對象的name屬性
console.log(jsonObj.persons[0].name);

但是eval方法很不安全,例如:

var jsonData = '{"persons":{"name":"成龍","age":window.alert(123)},{"name":"吳京","age":33},"name":"甄子丹","age":44}';
var jsonObj = eval('('+jsonData+')');
//訪問json對象數組的第一個對象的name屬性
console.log(jsonObj.persons[0].name);

將age的值換成了Javascript代碼,依然可以解析,加入有人惡意修改這個代碼,那么就會造成嚴重后果。

但是JSON.parse不同

var jsonData = '{"persons":{"name":"成龍","age":window.alert(123)},{"name":"吳京","age":33},"name":"甄子丹","age":44}';
var jsonObj = JSON.parse(jsonData);
//訪問json對象數組的第一個對象的name屬性
console.log(jsonObj.persons[0].name);

瀏覽器會檢查出json中的不合理的代碼,并報告錯誤

所以推薦使用JSON.parse

PS:下面在單獨介紹下eval()和JSON.parse()的區別

我們將一個字符串解析成json對象時可以使用兩種方法:

假設我們有一個json格式的字符串:

'{
 "student" : [
  {"name":"鳴人","age":17}, 
  {"name":"小櫻","age":17},
  {"name":"佐助","age":17}
 ]
}'

然后我們需要把它解析成json對象

1、eval()代碼如下:

var data = '{"student" : [{"name":"鳴人","age":17}, {"name":"小櫻","age":17},{"name":"佐助","age":17}]}';
eval('(' + data + ')');

2、JSON.parse()代碼如下:

var data = '{"student" : [{"name":"鳴人","age":17}, {"name":"小櫻","age":17},{"name":"佐助","age":17}]}';
JSON.parse(data);

區別:eval方法不會去檢查給的字符串時候符合json的格式~同時如果給的字符串中存在js代碼eval也會一并執行~比如如果上面的json格式的字符串改為:(注意紅色部分)

var data = '{"student" : [{"name":"鳴人","age":17}, {"name":"小櫻","age":alert("hehe")},{"name":"佐助","age":17}]}';

此時執行eval方法后會先彈出一個提示框輸出hehe的字符串~

但是使用JSON.parse()就會報錯~顯示錯誤信息為當前字符串不符合json格式~即JSON.parse()方法會檢查需要轉換的字符串是否符合json格式~

相比較而言eval方法是很危險的~特別是當涉及到第三方時我們需要確保傳給eval的參數是我們可以控制的~不然里面插入比如window.location~指向一個惡意的連接~那叫叫天啦

關于JSON怎么在Javascript中使用問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

洛浦县| 五寨县| 日喀则市| 称多县| 清流县| 东宁县| 武平县| 浦江县| 喀什市| 闽侯县| 宜兰县| 通江县| 辛集市| 桐乡市| 石棉县| 都江堰市| 阜新市| 上犹县| 南川市| 乌恰县| 疏勒县| 荔波县| 永仁县| 冕宁县| 潼南县| 平邑县| 枞阳县| 云和县| 苗栗市| 灵川县| 嵊州市| 鹿泉市| 宁明县| 罗山县| 神池县| 丰都县| 永嘉县| 普安县| 河东区| 凭祥市| 台江县|