版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
精品文檔-下載后可編輯基于J2ME/J2EE的JSON數(shù)據(jù)交換的探討-基礎(chǔ)電子1引言
隨著無(wú)線技術(shù)的發(fā)展和無(wú)線通信設(shè)備的普及,基于手機(jī)、PDA等小型消費(fèi)類和嵌人式設(shè)備的無(wú)線移動(dòng)應(yīng)用越來(lái)越廣泛。在可編程手機(jī)中,基于Java的手機(jī)為通行,事實(shí)上,Java已為多數(shù)手機(jī)制造商所接受,成為手機(jī)應(yīng)用與服務(wù)的標(biāo)準(zhǔn)。構(gòu)建網(wǎng)絡(luò)感知軟件時(shí),選擇正確的數(shù)據(jù)交換格式是一項(xiàng)重要的設(shè)計(jì)決策,尤其在設(shè)計(jì)移動(dòng)和嵌入式應(yīng)用程序時(shí),此時(shí),輕量和有效等特性是需要考慮的重要特征。此類特征非常重要,因?yàn)樗鼈兛赊D(zhuǎn)化為較低的計(jì)算要求和功耗使用、能發(fā)揮更好的性能以及較低的運(yùn)營(yíng)成本。這里研究JSON數(shù)據(jù)交換格式相比XML和傳統(tǒng)數(shù)據(jù)交換格式所具有的優(yōu)勢(shì),并提出在客戶端(J2ME)與服務(wù)器端(J2EE)之間采用JSON數(shù)據(jù)交換格式的一般實(shí)現(xiàn)框架。
2J2ME/J2EE簡(jiǎn)介
J2ME(Java2Platform.MicroEdition)是Java2的一部分。將Java語(yǔ)言與平臺(tái)無(wú)關(guān)的特性移植到小型電子設(shè)備上,允許移動(dòng)無(wú)線設(shè)備之間共享應(yīng)用程序。J2ME是針對(duì)有限硬件、有限功率、有限網(wǎng)絡(luò)連接設(shè)備進(jìn)行應(yīng)用開(kāi)發(fā)的技術(shù),適合在無(wú)限通信設(shè)備上開(kāi)發(fā)交互性較強(qiáng)的網(wǎng)絡(luò)應(yīng)用。在此基礎(chǔ)上編寫的MIDP應(yīng)用程序具有良好的兼容性和可移植性,可在PDA等手持設(shè)備上很好的運(yùn)行。
J2EE是Java2平臺(tái)的企業(yè)版,是一種利用Java2平臺(tái)簡(jiǎn)化企業(yè)解決方案的體系結(jié)構(gòu)。J2EE使用多層分布應(yīng)用模型,其典型的4層結(jié)構(gòu)為:①運(yùn)行在客戶端機(jī)器上的客戶層組件,如Web瀏覽器、JavaApplet等;②運(yùn)行在J2EE服務(wù)器上的Web層組件,如Servlet和JSP;③運(yùn)行在J2EE服務(wù)器上的業(yè)務(wù)邏輯層組件(EJB);④運(yùn)行在EJS(EnterpriseInformationSystem)服務(wù)器上的企業(yè)信息系統(tǒng)層軟件。
3JSON簡(jiǎn)介
JSON(JavaScript.ObjectNoation)是一種輕量級(jí)的數(shù)據(jù)交換格式,易于閱讀和編寫,也易于機(jī)器解析和生成。JSON采用完全獨(dú)立于語(yǔ)言的文本格式,但也使用類似于C語(yǔ)言家族的習(xí)慣。這些特性使JSON成為理想的數(shù)據(jù)交換語(yǔ)言。
JSON格式的數(shù)據(jù)有對(duì)象和數(shù)組兩種。對(duì)象是一個(gè)無(wú)序的“名稱/值”對(duì)集合。一個(gè)對(duì)象以“{”開(kāi)始,“}”結(jié)束。每個(gè)“名稱”后跟一個(gè)“:”;“名稱/值”對(duì)之間使用“,”分隔。數(shù)組值(value)的有序結(jié)合。一個(gè)數(shù)組以“{”開(kāi)始,“}”結(jié)束。值之間使用“,”分隔。
4數(shù)據(jù)交換格式分析
XML是一種用于描述信息存儲(chǔ)格式的語(yǔ)言,其優(yōu)點(diǎn)是健壯性和描述性強(qiáng),且是新一代開(kāi)放、可互操作的WebServices選用的通信數(shù)據(jù)格式。在移動(dòng)應(yīng)用程序中,開(kāi)發(fā)者通常自己創(chuàng)建數(shù)據(jù)交換格式或可擴(kuò)展標(biāo)記語(yǔ)言XML。前者的優(yōu)勢(shì)是可針對(duì)特定情況進(jìn)行調(diào)整,從而限度地提高性能,并限度地利用計(jì)算資源。當(dāng)在HTTP上使用后者時(shí),其優(yōu)勢(shì)在于它是事實(shí)上的數(shù)據(jù)交換標(biāo)準(zhǔn)。另外,在XML中使用的基于文本的表示形式使其易于調(diào)試。這兩種方法各有其缺陷,前者本質(zhì)上是專用的、非標(biāo)準(zhǔn)的,并可能是不可互操作的,而后者數(shù)據(jù)表示過(guò)于正規(guī)和繁瑣,對(duì)于移動(dòng)和嵌入式應(yīng)用程序尤其如此。
JSON是一種輕量級(jí)的數(shù)據(jù)交換格式,是基于文本的,具有良好的可讀性且易于調(diào)試。JSON支持所有基本數(shù)據(jù)類型的表示法,并提供將這些數(shù)據(jù)類型相互解析為Java類型的方法。對(duì)于輕量級(jí)應(yīng)用,JSON數(shù)據(jù)交換格式能夠較好的節(jié)省手機(jī)的計(jì)算資源,減少網(wǎng)絡(luò)傳輸時(shí)間,加快網(wǎng)絡(luò)傳輸速度。
5數(shù)據(jù)交換框架實(shí)現(xiàn)
5.1框架總體設(shè)計(jì)
框架結(jié)構(gòu)包括2部分:J2ME客戶端和J2EE服務(wù)器端??蛻舳瞬捎肑2ME的MIDP技術(shù),服務(wù)器端使用J2EE的servlet技術(shù)??蛻舳耸褂肏TTP協(xié)議發(fā)送已序列化的JSON消息到服務(wù)器端,服務(wù)器端通過(guò)反序列化JSON消息,根據(jù)客戶端請(qǐng)求進(jìn)行相應(yīng)的操作后,把請(qǐng)求的結(jié)果序列化成JSON消息返回給客戶端,客戶端獲取到返回的JSON消息后,反序列化成具體需要的數(shù)據(jù)。圖1為總體設(shè)計(jì)框架。
5.2服務(wù)器端
服務(wù)器端使用serverlet接收客戶端發(fā)送的基于HTTP協(xié)議的JSON消息,并調(diào)用JSONObject類對(duì)JSON進(jìn)行反序列化操作,得到所需的詳細(xì)信息。根據(jù)JSON格式的數(shù)據(jù)類型,需要分3種情況對(duì)JSON格式的數(shù)據(jù)進(jìn)行反序列化:①簡(jiǎn)單的對(duì)象形式。實(shí)現(xiàn)方法:創(chuàng)建一個(gè)JSONObiect實(shí)例,然后調(diào)用getString()函數(shù),具體形式如下:JSONObjectjsonObj=newJSONObject(message);Stringtitle=jsonObj.getString(“title”);其中message為接收到的JSON消息,title代表想要獲取的名稱。②對(duì)象里面嵌套對(duì)象的形式。實(shí)現(xiàn)方法:在原對(duì)象基礎(chǔ)上調(diào)用其getJSONObject()方法。具體形式如下:JSONObjectbody_obj=jsonObj.getJSONObject();③數(shù)組形式。實(shí)現(xiàn)方法:在原對(duì)象的基礎(chǔ)上調(diào)用其getJSONArray(),得到一個(gè)數(shù)據(jù)類型為JSONOebject的數(shù)組。反序列化得到請(qǐng)求的詳細(xì)信息后,J2EE端根據(jù)請(qǐng)求進(jìn)行其他操作,如從網(wǎng)絡(luò)上獲取XML數(shù)據(jù)、從數(shù)據(jù)庫(kù)獲取數(shù)據(jù)等。得到數(shù)據(jù)后,服務(wù)器端把數(shù)據(jù)序列化成JSON格式消息,發(fā)送到客戶端。
5.3客戶端
客戶端向服務(wù)器端發(fā)送已被序列化的JSON格式消息,然后等待服務(wù)器端返回的消息,接到服務(wù)器返回的消息后,反序列化JSON消息。處理過(guò)程調(diào)用ison.me的API。具體實(shí)現(xiàn)如下:①序列化成JSON格式。只需調(diào)用JSONObjeet的put方法添加相關(guān)項(xiàng)。JSONObject可以添加3種對(duì)象:簡(jiǎn)單的對(duì)象、JSONObject對(duì)象、JSONArray對(duì)象。具體操作如下:JSONObjectheader=newJSONObjeet();headerput(“title”,“yahoonews”);JSONObjectchildObj=newJSONObject();header.put(“child”,childObj);JSONArrayarrayObj=newJSONArray();headerput(“array”,arrayObj);②反序列化JSON格式消息。反序列化也包括3種情況:簡(jiǎn)單的JSONObject對(duì)象、嵌套的JSONObject對(duì)象、數(shù)組對(duì)象。具體實(shí)現(xiàn)如下:JSONObjectbj=newJSONObject(str);Stringtitle=obj-getString(“title”);intcount=obj.getInt(“count”);JSONObjectbody=obj.getJSONObject(“body”);JSONArrayarrayObj=obj.getJSONArray(“array”);
5.4傳輸協(xié)議層
客戶端和服務(wù)器端之間的通信采用HTTP協(xié)議。HTTP協(xié)議是一種廣泛使用的協(xié)議,所有MIDP設(shè)備都支持HTTP協(xié)議。且在各種不同的無(wú)線網(wǎng)絡(luò)上,HTTP協(xié)議實(shí)現(xiàn)相對(duì)較容易。HTTP協(xié)議請(qǐng)求方式有GET和POST兩種。由于GET請(qǐng)求發(fā)送大數(shù)據(jù)塊時(shí)對(duì)URL字符串長(zhǎng)度有限制。對(duì)象JSON字符串長(zhǎng)度可能很長(zhǎng),尤其當(dāng)使用極其復(fù)雜的對(duì)象時(shí)。
同時(shí),在跨域網(wǎng)絡(luò)以純文本方式發(fā)送所有數(shù)據(jù)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年鄉(xiāng)村振興示范村創(chuàng)建路徑
- 2026湖南懷化國(guó)際陸港經(jīng)濟(jì)開(kāi)發(fā)區(qū)內(nèi)國(guó)有企業(yè)招聘4人備考題庫(kù)及答案詳解(考點(diǎn)梳理)
- 2026福建廈門市集美區(qū)樂(lè)海幼兒園頂崗教職工招聘2人備考題庫(kù)及參考答案詳解一套
- 2026年綠色金融產(chǎn)品開(kāi)發(fā)實(shí)戰(zhàn)課程
- 鐵路客運(yùn)食品安全與供應(yīng)管理手冊(cè)
- 2026年氣候風(fēng)險(xiǎn)管理框架建設(shè)課
- 2025 小學(xué)一年級(jí)道德與法治上冊(cè)我的國(guó)家小卡片課件
- 超生刀課件教學(xué)課件
- 關(guān)于扶持高校畢業(yè)生創(chuàng)業(yè)的意見(jiàn)
- 職業(yè)健康監(jiān)護(hù)中的標(biāo)準(zhǔn)化培訓(xùn)教材開(kāi)發(fā)
- DB11∕T 510-2024 公共建筑節(jié)能工程施工質(zhì)量驗(yàn)收規(guī)程
- 專題:完形填空 七年級(jí)英語(yǔ)下冊(cè)期末復(fù)習(xí)考點(diǎn)培優(yōu)專項(xiàng)魯教版(五四學(xué)制)(含答案解析)
- 英語(yǔ)滬教版5年級(jí)下冊(cè)
- T/CPFIA 0005-2022含聚合態(tài)磷復(fù)合肥料
- GB/T 43590.507-2025激光顯示器件第5-7部分:激光掃描顯示在散斑影響下的圖像質(zhì)量測(cè)試方法
- QGDW12505-2025電化學(xué)儲(chǔ)能電站安全風(fēng)險(xiǎn)評(píng)估規(guī)范
- 顧客特殊要求培訓(xùn)課件
- 幼兒園助教培訓(xùn):AI賦能教師教學(xué)能力提升
- 經(jīng)銷商會(huì)議總結(jié)模版
- 兩癌預(yù)防知識(shí)講座
- 2024年山東濟(jì)南中考滿分作文《為了這份繁華》
評(píng)論
0/150
提交評(píng)論