天天看點

JSON 使用

JSON 最常見的用法之一,是從 web 伺服器上讀取 JSON 資料(作為檔案或作為 HttpRequest),将 JSON 資料轉換為 JavaScript 對象,然後在網頁中使用該資料。

為了更簡單地為您講解,我們使用字元串作為輸入進行示範(而不是檔案)。

建立包含 JSON 文法的 JavaScript 字元串:

var txt = '{ "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 對象:

document.getElementById("name").innerHTML=obj.sites[0].name

document.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

對于較老的浏覽器,可使用 JavaScript 庫:

https://github.com/douglascrockford/JSON-js

JSON 格式最初是

originally specified by Douglas Crockford