
文章插圖
JSON 數(shù)據(jù)格式和 XML 一樣,JSON 也是基于純文本的數(shù)據(jù)格式 。由于 JSON 天生是為 JavaScript 準(zhǔn)備的,因此,JSON 的數(shù)據(jù)格式非常簡單,您可以用 JSON 傳輸一個(gè)簡單的 String,Number,Boolean,也可以傳輸一個(gè)數(shù)組,或者一個(gè)復(fù)雜的 Object 對(duì)象 。
String,Number 和 Boolean 用 JSON 表示非常簡單 。
例如,用 JSON 表示一個(gè)簡單的 String “ abc ”,其格式為:
"abc"除了字符 “,,/ 和一些控制符(b,f,n,r,t)需要編碼外,其他 Unicode 字符可以直接輸出 。下圖是一個(gè) String 的完整表示結(jié)構(gòu):
String 的完整表示結(jié)構(gòu)String 的完整表示結(jié)構(gòu)一個(gè) Number 可以根據(jù)整型或浮點(diǎn)數(shù)表示如下:
Number 的表示結(jié)構(gòu)Number 的表示結(jié)構(gòu)這與絕大多數(shù)編程語言的表示方法一致,例如:
12345(整數(shù))-3.9e10(浮點(diǎn)數(shù))
Boolean 類型表示為 true 或 false。此外,JavaScript 中的 null 被表示為 null,注意,true、false 和 null 都沒有雙引號(hào),否則將被視為一個(gè) String。
JSON 還可以表示一個(gè)數(shù)組對(duì)象,使用 [] 包含所有元素,每個(gè)元素用逗號(hào)分隔,元素可以是任意的 Value,例如,以下數(shù)組包含了一個(gè) String,Number,Boolean 和一個(gè) null:
["abc",12345,false,null]Object 對(duì)象在 JSON 中是用 {} 包含一系列無序的 Key-Value 鍵值對(duì)表示的,實(shí)際上此處的 Object 相當(dāng)于 Java 中的 Map<String, Object>,而不是 Java 的 Class。注意 Key 只能用 String 表示 。
例如,一個(gè) Address 對(duì)象包含如下 Key-Value:
city:Beijingstreet:Chaoyang Roadpostcode:100025(整數(shù))用 JSON 表示如下:
{"city":"Beijing","street":" Chaoyang Road ","postcode":100025}其中 Value 也可以是另一個(gè) Object 或者數(shù)組,因此,復(fù)雜的 Object 可以嵌套表示,例如,一個(gè) Person 對(duì)象包含 name 和 address 對(duì)象,可以表示如下:
{"name":"Michael","address":{"city":"Beijing","street":" Chaoyang Road ","postcode":100025}}JavaScript 處理 JSON 數(shù)據(jù)
上面介紹了如何用 JSON 表示數(shù)據(jù),接下來,我們還要解決如何在服務(wù)器端生成 JSON 格式的數(shù)據(jù)以便發(fā)送到客戶端,以及客戶端如何使用 JavaScript 處理 JSON 格式的數(shù)據(jù) 。
我們先討論如何在 Web 頁面中用 JavaScript 處理 JSON 數(shù)據(jù) 。我們通過一個(gè)簡單的 JavaScript 方法就能看到客戶端如何將 JSON 數(shù)據(jù)表示給用戶:
function handleJson() {var j={"name":"Michael","address":{"city":"Beijing","street":" Chaoyang Road ","postcode":100025}};document.write(j.name);document.write(j.address.city);}假定服務(wù)器返回的 JSON 數(shù)據(jù)是上文的:
{"name":"Michael","address":{"city":"Beijing","street":" Chaoyang Road ","postcode":100025}}只需將其賦值給一個(gè) JavaScript 變量,就可以立刻使用該變量并更新頁面中的信息了,相比 XML 需要從 DOM 中讀取各種節(jié)點(diǎn)而言,JSON 的使用非常容易 。我們需要做的僅僅是發(fā)送一個(gè) Ajax 請求,然后將服務(wù)器返回的 JSON 數(shù)據(jù)賦值給一個(gè)變量即可 。有許多 Ajax 框架早已包含了處理 JSON 數(shù)據(jù)的能力,例如 Prototype(一個(gè)流行的 JavaScript 庫:http://prototypejs.org)提供了 evalJSON() 方法,能直接將服務(wù)器返回的 JSON 文本變成一個(gè) JavaScript 變量:
new Ajax.Request("http://url", {method: "get",onSuccess: function(transport) {var json = transport.responseText.evalJSON();// TODO: document.write(json.xxx);}});服務(wù)器端輸出 JSON 格式數(shù)據(jù)
下面我們討論如何在服務(wù)器端輸出 JSON 格式的數(shù)據(jù) 。以 Java 為例,我們將演示將一個(gè) Java 對(duì)象編碼為 JSON 格式的文本 。
將 String 對(duì)象編碼為 JSON 格式時(shí),只需處理好特殊字符即可 。另外,必須用 (“) 而非 (’) 表示字符串:
以上關(guān)于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關(guān)的問題,請您及時(shí)就醫(yī)或請專業(yè)人士給予相關(guān)指導(dǎo)!
「愛刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對(duì)您有所幫助:- 講解漢字內(nèi)碼正確形式 中文編碼格式有哪些
- u盤raw格式數(shù)據(jù)恢復(fù)方法 u盤變成raw怎么修復(fù)
- 哪種文件格式最好 文件格式都有哪幾種
- heic是什么格式 heic是什么格式的視頻
- 照片格式怎么快速轉(zhuǎn)JPG或JPEG格式 如何照片轉(zhuǎn)jpg格式
- 這些圖像文件格式有什么區(qū)別 圖像文件格式有幾種
- txt文件轉(zhuǎn)換成圖片格式的方法 txt轉(zhuǎn)換器手機(jī)軟件
- 教你國際郵箱格式怎么寫 郵箱格式怎么寫
- ae輸出視頻格式選擇 ae格式選項(xiàng)
- php數(shù)組最大長度 php數(shù)組追加元素
