JSON 使用
把 JSON 文本轉換為 JavaScript 對象
JSON 最常見的用法之一,是從 web 伺服器上讀取 JSON 數據(作為文件或作為 HttpRequest),將 JSON 數據轉換為 JavaScript 對象,然後在網頁中使用該數據。
為了更簡單地為您講解,我們使用字元串作為輸入進行演示(而不是文件)。
JSON 實例 - 來自字元串的對象
創建包含 JSON 語法的 JavaScript 字元串:
vartxt = "{ "sites" : [" +"{ "name":"菜鳥教程" , "url":"www.runoob.com" }," +"{ "name":"google" , "url":"www.google.com" }," +"{ "name":"微博" , "url":"www.weibo.com" } ]}";
由於 JSON 語法是 JavaScript 語法的子集,JavaScript 函數 eval() 可用於將 JSON 文本轉換為 JavaScript 對象。
eval() 函數使用的是 JavaScript 編譯器,可解析 JSON 文本,然後生成 JavaScript 對象。必須把文本包圍在括弧中,這樣才能避免語法錯誤:
var obj = eval ("(" + txt + ")");
在網頁中使用 JavaScript 對象:
實例
vartxt = "{ "sites" : [" +"{ "name":"菜鳥教程" , "url":"www.runoob.com" }," +"{ "name":"google" , "url":"www.google.com" }," +"{ "name":"微博" , "url":"www.weibo.com" } ]}";
varobj = eval("(" + txt + ")");
document.getElementById("name").innerHTML=obj.sites[0].namedocument.getElementById("url").innerHTML=obj.sites[0].url
嘗試一下 ?
JSON 解析器
eval() 函數可編譯並執行任何 JavaScript 代碼。這隱藏了一個潛在的安全問題。
使用 JSON 解析器將 JSON 轉換為 JavaScript 對象是更安全的做法。JSON 解析器只能識別 JSON 文本,而不會編譯腳本。
在瀏覽器中,這提供了原生的 JSON 支持,而且 JSON 解析器的速度更快。
較新的瀏覽器和最新的 ECMAScript (JavaScript) 標準中均包含了原生的對 JSON 的支持。
Web 瀏覽器支持 | Web 軟體支持 |
---|
Firefox (Mozilla) 3.5
Internet Explorer 8
Chrome
Opera 10
Safari 4
jQuery
Yahoo UI
Prototype
Dojo
ECMAScript 1.5
※jQuery UI 為什麼使用部件庫(Widget Factory)
※AJAX 實例
TAG:程序員小新人學習 |