JSON 使用
把JSON 文本轉換為JavaScript 對象
JSON 最常見的用法之一,是從web 服務器上讀取JSON 數據(作為文件或作為HttpRequest),將JSON 數據轉換為JavaScript 對象,然後在網頁中使用該數據。
為了更簡單地為您講解,我們使用字符串作為輸入進行演示(而不是文件)。
JSON 實例- 來自字符串的對象
創建包含JSON 語法的JavaScript 字符串:
var txt = '{ "employees" : [' +
'{ "firstName":"John" , "lastName":"Doe" },' +
'{ "firstName":"Anna" , "lastName":"Smith" },' +
'{ "firstName":"Peter" , "lastName":"Jones" } ]}';
'{ "firstName":"John" , "lastName":"Doe" },' +
'{ "firstName":"Anna" , "lastName":"Smith" },' +
'{ "firstName":"Peter" , "lastName":"Jones" } ]}';
由於JSON 語法是JavaScript 語法的子集,JavaScript 函數eval() 可用於將JSON 文本轉換為JavaScript 對象。
eval() 函數使用的是JavaScript 編譯器,可解析JSON 文本,然後生成JavaScript 對象。 必須把文本包圍在括號中,這樣才能避免語法錯誤:
var obj = eval ("(" + txt + ")");
在網頁中使用JavaScript 對象:
實例
<p>
First Name: <span id="fname"></span><br />
Last Name: <span id="lname"></span><br />
</p>
<script>
document.getElementById("fname").innerHTML = obj.employees[1].firstName
document.getElementById("lname").innerHTML = obj.employees[1].lastName
</script>
First Name: <span id="fname"></span><br />
Last Name: <span id="lname"></span><br />
</p>
<script>
document.getElementById("fname").innerHTML = obj.employees[1].firstName
document.getElementById("lname").innerHTML = obj.employees[1].lastName
</script>
嘗試一下»
JSON 解析器
eval() 函數可編譯並執行任何JavaScript 代碼。 這隱藏了一個潛在的安全問題。
使用JSON 解析器將JSON 轉換為JavaScript 對像是更安全的做法。 JSON 解析器只能識別JSON 文本,而不會編譯腳本。
在瀏覽器中,這提供了原生的JSON 支持,而且JSON 解析器的速度更快。
較新的瀏覽器和最新的ECMAScript (JavaScript) 標準中均包含了原生的對JSON 的支持。
Web 浏览器支持 | Web 软件支持 |
---|---|
|
|
對於較老的瀏覽器,可使用JavaScript庫: https://github.com/douglascrockford/JSON-js