資源描述:
《android網(wǎng)絡(luò)開(kāi)發(fā)中如何使用json進(jìn)行網(wǎng)絡(luò)通信---方法解析》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、Android網(wǎng)絡(luò)開(kāi)發(fā)中如何使用JSON進(jìn)行網(wǎng)絡(luò)通信---AndroidJSON數(shù)據(jù)通訊方法解析Android網(wǎng)絡(luò)開(kāi)發(fā)中如何使用JSON進(jìn)行網(wǎng)絡(luò)通信---AndroidJSON數(shù)據(jù)通訊方法解析在開(kāi)發(fā)客戶端與服務(wù)端的應(yīng)用當(dāng)中,數(shù)據(jù)交換接口通常都是通過(guò)XML格式來(lái)進(jìn)行數(shù)據(jù)交換的。近年來(lái),隨著AJAX技術(shù)的興起,JSON作為一種輕量級(jí)的數(shù)據(jù)交換格式,以其易于閱讀和編寫(xiě)的優(yōu)點(diǎn),也越來(lái)越多的被使用到各個(gè)項(xiàng)目中。在OPhoneSDK中,也提供了JSON的類庫(kù)方便對(duì)JSON格式的數(shù)據(jù)進(jìn)行處理。本文將快速講解JSON格式,并通過(guò)代碼示例演示如何分別在客戶端和服務(wù)器端進(jìn)行JSON格式數(shù)據(jù)的處理
2、。什么是JSONJSON(JavaScriptObjectNotation)是一種輕量級(jí)的數(shù)據(jù)交換格式,易于閱讀和編寫(xiě),同時(shí)也易于機(jī)器解析和生成,非常適合于服務(wù)器與客戶端的交互。JSON采用與編程語(yǔ)言無(wú)關(guān)的文本格式,但是也使用了類C語(yǔ)言的習(xí)慣,這些特性使JSON成為理想的數(shù)據(jù)交換格式。和XML一樣,JSON也是基于純文本的數(shù)據(jù)格式。由于JSON天生是為JavaScript準(zhǔn)備的,因此,JSON的數(shù)據(jù)格式非常簡(jiǎn)單,您可以用JSON傳輸一個(gè)簡(jiǎn)單的String,Number,Boolean,也可以傳輸一個(gè)數(shù)組,或者一個(gè)復(fù)雜的Object對(duì)象。String,Number和Boolea
3、n用JSON表示非常簡(jiǎn)單。例如,用JSON表示一個(gè)簡(jiǎn)單的字符串“abc”,其格式為:"abc"。除了字符",,/和一些控制符(b,f,,r,t)需要編碼外,其他Unicode字符可以直接輸出。下圖是一個(gè)String的完整表示結(jié)構(gòu):圖1.String的完整表示結(jié)構(gòu)一個(gè)Number可以根據(jù)整型或浮點(diǎn)數(shù)表示如下:圖2.Number的表示結(jié)構(gòu)這與絕大多數(shù)編程語(yǔ)言的表示方法一致,例如:12345(整數(shù))-3.9e10(浮點(diǎn)數(shù))Boolean類型表示為true或false。此外,JavaScript中的null被表示為null,注意,true、false和null都沒(méi)有雙引
4、號(hào),否則將被視為一個(gè)String。JSON還可以表示一個(gè)數(shù)組對(duì)象,使用[]包含所有元素,每個(gè)元素用逗號(hào)分隔,元素可以是任意的Value,例如,以下數(shù)組包含了一個(gè)String,Number,Boolean和一個(gè)null:1.["abc",12345,false,null]["abc",12345,false,null]Object對(duì)象在JSON中是用{}包含一系列無(wú)序的Key-Value鍵值對(duì)表示的,實(shí)際上此處的Object相當(dāng)于Java中的Map,而不是Java的Class。注意Key只能用String表示。例如,一個(gè)Address對(duì)象包含如下K
5、ey-Value:city:Beijingstreet:ChaoyangRoadpostcode:100025(整數(shù))用JSON表示如下:1.{"city":"Beijing","street":"ChaoyangRoad","postcode":100025}{"city":"Beijing","street":"ChaoyangRoad","postcode":100025}其中Value也可以是另一個(gè)Object或者數(shù)組,因此,復(fù)雜的Object可以嵌套表示,例如,一個(gè)Person對(duì)象包含name和address對(duì)象,可以表示如下:1.{"name":"Michael"
6、,"address":2.{"city":"Beijing","street":"ChaoyangRoad","postcode":100025}3.}{"name":"Michael","address":{"city":"Beijing","street":"ChaoyangRoad","postcode":100025}}一個(gè)實(shí)際例子接下來(lái),我會(huì)通過(guò)一個(gè)例子來(lái)詳細(xì)說(shuō)明OPhone客戶端程序如何訪問(wèn)服務(wù)端的接口程序讀取用戶列表數(shù)據(jù),并在模擬器上顯示用戶列表數(shù)據(jù)。1、服務(wù)端接口程序首先,我們創(chuàng)建一個(gè)名為User的JavaBean作為用戶對(duì)象類,用來(lái)保存演示數(shù)據(jù)。1.publ
7、icclassUser{2.privateintid;3.privateStringname;4.privateStringemail;5.privateStringgender;6.7.publicintgetId(){8.returnid;9.}10.publicvoidsetId(intid){11.this.id=id;12.}13.publicStringgetName(){14.returnname;15.}16.publicvoidsetName(Stringname){17.this.n