JSON 使用把 JSON 文本轉(zhuǎn)換為 JavaScript 對象JSON 最常見的用法之一,,是從 web 服務(wù)器上讀取 JSON 數(shù)據(jù)(作為文件或作為 HttpRequest),將 JSON 數(shù)據(jù)轉(zhuǎn)換為 JavaScript 對象,,然后在網(wǎng)頁中使用該數(shù)據(jù),。 為了更簡單地為您講解,我們使用字符串作為輸入進(jìn)行演示(而不是文件),。 JSON 實例 - 來自字符串的對象創(chuàng)建包含 JSON 語法的 JavaScript 字符串:
var txt = '{ "employees" : [' + '{ "firstName":"John" , "lastName":"Doe" },' + '{ "firstName":"Anna" , "lastName":"Smith" },' + '{ "firstName":"Peter" , "lastName":"Jones" } ]}'; 由于 JSON 語法是 JavaScript 語法的子集,,JavaScript 函數(shù) eval() 可用于將 JSON 文本轉(zhuǎn)換為 JavaScript 對象。 eval() 函數(shù)使用的是 JavaScript 編譯器,,可解析 JSON 文本,,然后生成 JavaScript 對象。必須把文本包圍在括號中,,這樣才能避免語法錯誤:
var obj = eval ("(" + txt + ")");
在網(wǎng)頁中使用 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> 嘗試一下 ? JSON 解析器eval() 函數(shù)可編譯并執(zhí)行任何 JavaScript 代碼,。這隱藏了一個潛在的安全問題。 使用 JSON 解析器將 JSON 轉(zhuǎn)換為 JavaScript 對象是更安全的做法,。JSON 解析器只能識別 JSON 文本,,而不會編譯腳本。 在瀏覽器中,,這提供了原生的 JSON 支持,,而且 JSON 解析器的速度更快。 較新的瀏覽器和最新的 ECMAScript (JavaScript) 標(biāo)準(zhǔn)中均包含了原生的對 JSON 的支持,。
對于較老的瀏覽器,,可使用 JavaScript 庫: https://github.com/douglascrockford/JSON-js JSON 格式最初是 originally specified by Douglas Crockford |
|