那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

采用JSON數(shù)據(jù)交換格式實(shí)現(xiàn)數(shù)據(jù)交換框架的設(shè)計(jì)

電子設(shè)計(jì) ? 來源:電子設(shè)計(jì)工程 ? 作者:胡文發(fā),白中英 ? 2021-06-24 17:09 ? 次閱讀

1 引言

隨著無線技術(shù)的發(fā)展和無線通信設(shè)備的普及,基于手機(jī)、PDA等小型消費(fèi)類和嵌人式設(shè)備的無線移動(dòng)應(yīng)用越來越廣泛。在可編程手機(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)框架。

2 J2ME/J2EE簡(jiǎn)介

J2ME(Java 2 Platform. MICRO Edition)是Java 2的一部分。將Java語(yǔ)言與平臺(tái)無關(guān)的特性移植到小型電子設(shè)備上,允許移動(dòng)無線設(shè)備之間共享應(yīng)用程序。J2ME是針對(duì)有限硬件、有限功率、有限網(wǎng)絡(luò)連接設(shè)備進(jìn)行應(yīng)用開發(fā)的技術(shù),適合在無限通信設(shè)備上開發(fā)交互性較強(qiáng)的網(wǎng)絡(luò)應(yīng)用。在此基礎(chǔ)上編寫的MIDP應(yīng)用程序具有良好的兼容性和可移植性,可在PDA等手持設(shè)備上很好的運(yùn)行。

J2EE是Java 2平臺(tái)的企業(yè)版,是一種利用Java 2平臺(tái)簡(jiǎn)化企業(yè)解決方案的體系結(jié)構(gòu)。J2EE使用多層分布應(yīng)用模型,其典型的4層結(jié)構(gòu)為:①運(yùn)行在客戶端機(jī)器上的客戶層組件,如Web瀏覽器、Java Applet等;②運(yùn)行在J2EE服務(wù)器上的Web層組件,如Servlet和JSP;③運(yùn)行在J2EE服務(wù)器上的業(yè)務(wù)邏輯層組件(EJB);④運(yùn)行在EJS(Enterprise Information System)服務(wù)器上的企業(yè)信息系統(tǒng)層軟件。

3 JSON簡(jiǎn)介

JSON(JavaScript. Object Noation)是一種輕量級(jí)的數(shù)據(jù)交換格式,易于閱讀和編寫,也易于機(jī)器解析和生成。JSON采用完全獨(dú)立于語(yǔ)言的文本格式,但也使用類似于C語(yǔ)言家族的習(xí)慣。這些特性使JSON成為理想的數(shù)據(jù)交換語(yǔ)言。

JSON格式的數(shù)據(jù)有對(duì)象和數(shù)組兩種。對(duì)象是一個(gè)無序的“名稱/值”對(duì)集合。一個(gè)對(duì)象以“{”開始,“}”結(jié)束。每個(gè)“名稱”后跟一個(gè)“:”;“名稱/值”對(duì)之間使用“,”分隔。數(shù)組值(value)的有序結(jié)合。一個(gè)數(shù)組以“{”開始,“}”結(jié)束。值之間使用“,”分隔。

4數(shù)據(jù)交換格式分析

XML是一種用于描述信息存儲(chǔ)格式的語(yǔ)言,其優(yōu)點(diǎn)是健壯性和描述性強(qiáng),且是新一代開放、可互操作的Web Services選用的通信數(shù)據(jù)格式。在移動(dòng)應(yīng)用程序中,開發(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ī)和繁瑣,對(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ù)。客戶端使用HTTP協(xié)議發(fā)送已序列化的JSON消息到服務(wù)器端,服務(wù)器端通過反序列化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ù),具體形式如下:JSONObject jsonObj=newJSONObject(message);String title=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消息。處理過程調(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ì)象。具體操作如下:JSONObject header=new JSONObjeet ();headerput(“title”,“yahoonews”);JSONObject childObj=new JSONObject();header.put(“child”,childObj);JSONArray arrayObj=new JSONArray();headerput(“array”,arrayObj);②反序列化JSON格式消息。反序列化也包括3種情況:簡(jiǎn)單的JSONObject對(duì)象、嵌套的JSONObject對(duì)象、數(shù)組對(duì)象。具體實(shí)現(xiàn)如下:JSONObject bj=new JSONObject(str);String title=obj-getString(“title”);intcount=obj.getInt(“count”);JSONObject body=obj.getJSONObject(“body”);JSONArray arrayObj=obj.getJSONArray(“array”);

5.4 傳輸協(xié)議層

客戶端和服務(wù)器端之間的通信采用HTTP協(xié)議。HTTP協(xié)議是一種廣泛使用的協(xié)議,所有MIDP設(shè)備都支持HTTP協(xié)議。且在各種不同的無線網(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ù),安全性難以保證.因此建議采用POST方式發(fā)送機(jī)密或內(nèi)容極長(zhǎng)的請(qǐng)求。

6 結(jié)束語(yǔ)

通過分析JSON、XML與自定義數(shù)據(jù)交換格式,提出以JSON作為輕量級(jí)數(shù)據(jù)交換格式,并給出其在客戶端(J2ME)與服務(wù)器端(J2EE)解決方法的一般框架,解決了自定義和使用XML數(shù)據(jù)交換格式所帶來的繁瑣、耗費(fèi)資源的缺陷。

責(zé)任編輯:gt

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 手機(jī)
    +關(guān)注

    關(guān)注

    35

    文章

    6898

    瀏覽量

    158269
  • 無線
    +關(guān)注

    關(guān)注

    31

    文章

    5470

    瀏覽量

    173835
  • JAVA
    +關(guān)注

    關(guān)注

    19

    文章

    2975

    瀏覽量

    105150
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    企業(yè)數(shù)據(jù)交換平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)

    采用了基于微軟的ASP.NET技術(shù)的B/S架構(gòu),根據(jù)企業(yè)數(shù)據(jù)交換平臺(tái)的需求分析,實(shí)現(xiàn)了包括系統(tǒng)管理,節(jié)…【關(guān)鍵詞】:系統(tǒng)規(guī)劃;;數(shù)據(jù)交互;;數(shù)據(jù)交換
    發(fā)表于 04-24 09:21

    如何實(shí)現(xiàn)labview跟電腦的數(shù)據(jù)交換?

    如何實(shí)現(xiàn)labview跟電腦的數(shù)據(jù)交換,不用硬件
    發(fā)表于 11-18 13:35

    PCB設(shè)計(jì)和制造數(shù)據(jù)交換技術(shù)及標(biāo)準(zhǔn)化

    的多種信息。包括Mentor 和Candence 在內(nèi)的許多EDA 開發(fā)商都已經(jīng)正式采用EDIF400?! ∑渌鸓CB數(shù)據(jù)交換格式  除了上述Gerber , GenCAM, ODB + + 以及
    發(fā)表于 11-22 15:57

    如何解決自定義和使用XML數(shù)據(jù)交換格式帶來的缺陷?

    JSON數(shù)據(jù)交換格式相比XML和傳統(tǒng)數(shù)據(jù)交換格式所具有哪些優(yōu)勢(shì)?如何解決自定義和使用XML數(shù)據(jù)交換格式帶來的缺陷?
    發(fā)表于 05-27 06:20

    freertos中是如何實(shí)現(xiàn)兩個(gè)任務(wù)的數(shù)據(jù)交換的?

    freertos中是如何實(shí)現(xiàn)兩個(gè)任務(wù)的數(shù)據(jù)交換
    發(fā)表于 10-20 06:17

    策略驅(qū)動(dòng)的數(shù)據(jù)交換模型

    針對(duì)數(shù)據(jù)交換應(yīng)用存在數(shù)據(jù)交換來源多樣、交換需求多變的特點(diǎn),結(jié)合策略獨(dú)立于實(shí)現(xiàn)等特點(diǎn),提出將策略應(yīng)用到數(shù)據(jù)交換領(lǐng)域的觀點(diǎn),解決現(xiàn)有
    發(fā)表于 04-13 08:53 ?5次下載

    基于任務(wù)的數(shù)據(jù)交換平臺(tái)

    上下級(jí)單位以及同級(jí)單位之間的數(shù)據(jù)交換日漸頻繁,這些單位采用數(shù)據(jù)庫(kù)多種多樣,數(shù)據(jù)定義在語(yǔ)義、內(nèi)容上存在沖突,需要交換
    發(fā)表于 04-14 09:18 ?16次下載

    基于J2ME/J2EE的JSON數(shù)據(jù)交換的探討

    分析JSON數(shù)據(jù)交換格式,并提出在客戶端(J2ME)與服務(wù)器端(J2EE)之間采用JSON數(shù)據(jù)交換格式
    發(fā)表于 12-30 16:10 ?0次下載

    什么是空間數(shù)據(jù)交換中心

    什么是空間數(shù)據(jù)交換中心 空間數(shù)據(jù)交換中心是指對(duì)不同范圍、領(lǐng)域的空間信息及其元數(shù)據(jù)進(jìn)行有效管理、給信息需求 者提供空間數(shù)據(jù)
    發(fā)表于 06-17 07:40 ?1005次閱讀

    什么是數(shù)據(jù)交換技術(shù)

    什么是數(shù)據(jù)交換技術(shù) 數(shù)據(jù)交換技術(shù)主要是電路交換、分組交換和 ATM (異步傳送)。電路交換是通過交換
    發(fā)表于 06-17 08:11 ?4807次閱讀

    動(dòng)態(tài)數(shù)據(jù)交換(DDE),動(dòng)態(tài)數(shù)據(jù)交換(DDE)原理是什么?

    動(dòng)態(tài)數(shù)據(jù)交換(DDE),動(dòng)態(tài)數(shù)據(jù)交換(DDE)原理是什么? 動(dòng)態(tài)數(shù)據(jù)交換(DDE)是建立在Windows內(nèi)部消息系統(tǒng)、全局原子和共項(xiàng)全局內(nèi)存基礎(chǔ)上的一種協(xié)議,可
    發(fā)表于 03-18 15:23 ?1w次閱讀

    電子數(shù)據(jù)交換(EDI)是什么意思

    電子數(shù)據(jù)交換(EDI)是什么意思 EDI的基本概念 電子數(shù)據(jù)交換系統(tǒng)(EDI)是指將企業(yè)間交易往來的資料由從前的文書、傳票等
    發(fā)表于 04-03 15:13 ?5274次閱讀

    什么是JSON JSON的語(yǔ)法規(guī)則

    JSON數(shù)據(jù)交換格式 JSON(JavaScript Object Notation, JS 對(duì)象簡(jiǎn)譜) 是一種輕量級(jí)的數(shù)據(jù)交換格式。它基于 ECMAScript (歐洲計(jì)算機(jī)協(xié)會(huì)制定
    的頭像 發(fā)表于 08-25 15:40 ?2695次閱讀

    Profinet直接數(shù)據(jù)交換功能概述

    從固件版本 V2.8 開始,S7-1500 CPU 支持與其它 S7-1500 CPU 進(jìn)行直接數(shù)據(jù)交換。在直接數(shù)據(jù)交換的情況下,S7-1500 CPU 將 I/O 區(qū)域中的循環(huán)用戶數(shù)據(jù)提供給一個(gè)或
    的頭像 發(fā)表于 12-20 09:49 ?2308次閱讀

    網(wǎng)絡(luò)工程師學(xué)Python之JSON數(shù)據(jù)交換格式解析

    JSON(JavaScript Object Notation)是一種輕量級(jí)的數(shù)據(jù)交換格式。它基于JavaScript語(yǔ)法,但也可以被其他語(yǔ)言如Python解析和生成。
    的頭像 發(fā)表于 04-21 16:53 ?1507次閱讀
    德州扑克 英文| 百家乐官网网站可信吗| 澳门百家乐威尼斯| 达拉特旗| 御匾会百家乐官网的玩法技巧和规则| 大发888下载 34| 百家乐赌术揭秘| 钟山县| 百家乐打闲赢机会多| 百家乐官网长龙怎么预判| 连环百家乐的玩法技巧和规则| e乐博官网| 百家乐龙虎斗| 带百家乐官网的时时彩平台| 威尼斯人娱乐城网上赌场| 赌百家乐官网的玩法技巧和规则| 金利娱乐城代理| 百家乐能赢到钱吗| 网上百家乐官网的技巧| 黄金城百家乐苹果版| 澳门百家乐官网官网网站| 云顶国际平台| 百家乐国际娱乐网| 百家乐官网纸牌赌博| 百家乐PK| 神人百家乐官网赌博| 大发888老虎机苹果版| 做生意的好风水好吗| 大亨百家乐官网娱乐城| 大发888娱乐城qq服务| 伟博百家乐官网娱乐城| 包头市| 老虎机批发| 网上百家乐骗人的| 真人百家乐官网导航| 大发888大发888官方| 百家乐猜大小规则| 百家乐官网公式书| 超级大赢家| 卢克索百家乐的玩法技巧和规则 | G3百家乐的玩法技巧和规则|