JSON 使用

2023-04-15 16:32 更新
JSON經(jīng)常應(yīng)用到的場景是:在后臺應(yīng)用程序中將響應(yīng)數(shù)據(jù)封裝成JSON格式,傳到前臺頁面之后,需要將JSON格式轉(zhuǎn)換為JavaScript對象,然后在網(wǎng)頁中使用該數(shù)據(jù)。

把 JSON 文本轉(zhuǎn)換為 JavaScript 對象

JSON 最常見的用法之一,是從 web 服務(wù)器上讀取 JSON 數(shù)據(jù)(作為文件或作為 HttpRequest),將 JSON 數(shù)據(jù)轉(zhuǎn)換為 JavaScript 對象,然后在網(wǎng)頁中使用該數(shù)據(jù)。

為了更簡單地為您講解,我們使用字符串作為輸入進(jìn)行演示(而不是文件)。


JSON 實(shí)例 - 來自字符串的對象

創(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 對象:

實(shí)例

<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 解析器

lamp  eval() 函數(shù)可編譯并執(zhí)行任何 JavaScript 代碼。這隱藏了一個潛在的安全問題。

使用 JSON 解析器將 JSON 轉(zhuǎn)換為 JavaScript 對象是更安全的做法。JSON 解析器只能識別 JSON 文本,而不會編譯腳本。

在瀏覽器中,這提供了原生的 JSON 支持,而且 JSON 解析器的速度更快。

較新的瀏覽器和最新的 ECMAScript (JavaScript) 標(biāo)準(zhǔn)中均包含了原生的對 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

相關(guān)教程

ECMAScript


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號