色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

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

如何在客戶端與服務(wù)器端采用JSON數(shù)據(jù)交換格式實現(xiàn)框架設(shè)計

電子設(shè)計 ? 來源:郭婷 ? 作者:電子設(shè)計 ? 2019-08-29 08:00 ? 次閱讀

1 引言

隨著無線技術(shù)的發(fā)展和無線通信設(shè)備的普及,基于手機(jī)、PDA等小型消費(fèi)類和嵌人式設(shè)備的無線移動應(yīng)用越來越廣泛。在可編程手機(jī)中,基于Java的手機(jī)最為通行,事實上,Java已為多數(shù)手機(jī)制造商所接受,成為手機(jī)應(yīng)用與服務(wù)的標(biāo)準(zhǔn)。構(gòu)建網(wǎng)絡(luò)感知軟件時,選擇正確的數(shù)據(jù)交換格式是一項重要的設(shè)計決策,尤其在設(shè)計移動和嵌入式應(yīng)用程序時,此時,輕量和有效等特性是需要考慮的重要特征。此類特征非常重要,因為它們可轉(zhuǎn)化為較低的計算要求和功耗使用、能發(fā)揮更好的性能以及較低的運(yùn)營成本。這里研究JSON數(shù)據(jù)交換格式相比XML和傳統(tǒng)數(shù)據(jù)交換格式所具有的優(yōu)勢,并提出在客戶端(J2ME)與服務(wù)器端(J2EE)之間采用JSON數(shù)據(jù)交換格式的一般實現(xiàn)框架。

2 J2ME/J2EE簡介

J2ME(Java 2 Platform. MICRO Edition)是Java 2的一部分。將Java語言與平臺無關(guān)的特性移植到小型電子設(shè)備上,允許移動無線設(shè)備之間共享應(yīng)用程序。J2ME是針對有限硬件、有限功率、有限網(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平臺的企業(yè)版,是一種利用Java 2平臺簡化企業(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簡介

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

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

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

XML是一種用于描述信息存儲格式的語言,其優(yōu)點是健壯性和描述性強(qiáng),且是新一代開放、可互操作的Web Services選用的通信數(shù)據(jù)格式。在移動應(yīng)用程序中,開發(fā)者通常自己創(chuàng)建數(shù)據(jù)交換格式或可擴(kuò)展標(biāo)記語言XML。前者的優(yōu)勢是可針對特定情況進(jìn)行調(diào)整,從而最大限度地提高性能,并最大限度地利用計算資源。當(dāng)在HTTP上使用后者時,其優(yōu)勢在于它是事實上的數(shù)據(jù)交換標(biāo)準(zhǔn)。另外,在XML中使用的基于文本的表示形式使其易于調(diào)試。這兩種方法各有其缺陷,前者本質(zhì)上是專用的、非標(biāo)準(zhǔn)的,并可能是不可互操作的,而后者數(shù)據(jù)表示過于正規(guī)和繁瑣,對于移動和嵌入式應(yīng)用程序尤其如此。

JSON是一種輕量級的數(shù)據(jù)交換格式,是基于文本的,具有良好的可讀性且易于調(diào)試。JSON支持所有基本數(shù)據(jù)類型的表示法,并提供將這些數(shù)據(jù)類型相互解析為Java類型的方法。對于輕量級應(yīng)用,JSON數(shù)據(jù)交換格式能夠較好的節(jié)省手機(jī)的計算資源,減少網(wǎng)絡(luò)傳輸時間,加快網(wǎng)絡(luò)傳輸速度。

5 數(shù)據(jù)交換框架實現(xiàn)

5.1 框架總體設(shè)計

框架結(jié)構(gòu)包括2部分:J2ME客戶端和J2EE服務(wù)器端。客戶端采用J2ME的MIDP技術(shù),服務(wù)器端使用J2EE的servlet技術(shù)。客戶端使用HTTP協(xié)議發(fā)送已序列化的JSON消息到服務(wù)器端,服務(wù)器端通過反序列化JSON消息,根據(jù)客戶端請求進(jìn)行相應(yīng)的操作后,把請求的結(jié)果序列化成JSON消息返回給客戶端,客戶端獲取到返回的JSON消息后,反序列化成具體需要的數(shù)據(jù)。圖1為總體設(shè)計框架。

如何在客戶端與服務(wù)器端采用JSON數(shù)據(jù)交換格式實現(xiàn)框架設(shè)計

5.2 服務(wù)器端

服務(wù)器端使用serverlet接收客戶端發(fā)送的基于HTTP協(xié)議的JSON消息,并調(diào)用JSONObject類對JSON進(jìn)行反序列化操作,得到所需的詳細(xì)信息。根據(jù)JSON格式的數(shù)據(jù)類型,需要分3種情況對JSON格式的數(shù)據(jù)進(jìn)行反序列化:①簡單的對象形式。實現(xiàn)方法:創(chuàng)建一個JSONObiect實例,然后調(diào)用getString()函數(shù),具體形式如下:JSONObject jsonObj=newJSONObject(message);String title=jsonObj.getString(“title”);其中message為接收到的JSON消息,title代表想要獲取的名稱。②對象里面嵌套對象的形式。實現(xiàn)方法:在原對象基礎(chǔ)上調(diào)用其getJSONObject()方法。具體形式如下:JSONObjectbody_obj=jsonObj.getJSONObject();③數(shù)組形式。實現(xiàn)方法:在原對象的基礎(chǔ)上調(diào)用其getJSONArray(),得到一個數(shù)據(jù)類型為JSONOebject的數(shù)組。反序列化得到請求的詳細(xì)信息后,J2EE端根據(jù)請求進(jìn)行其他操作,如從網(wǎng)絡(luò)上獲取XML數(shù)據(jù)、從數(shù)據(jù)庫獲取數(shù)據(jù)等。得到數(shù)據(jù)后,服務(wù)器端把數(shù)據(jù)序列化成JSON格式消息,發(fā)送到客戶端。

5.3 客戶端

客戶端向服務(wù)器端發(fā)送已被序列化的JSON格式消息,然后等待服務(wù)器端返回的消息,接到服務(wù)器返回的消息后,反序列化JSON消息。處理過程調(diào)用ison.me的API。具體實現(xiàn)如下:①序列化成JSON格式。只需調(diào)用JSONObjeet的put方法添加相關(guān)項。JSONObject可以添加3種對象:簡單的對象、JSONObject對象、JSONArray對象。具體操作如下:JSONObject header=new JSONObjeet ();headerput(“title”,“yahoonews”);JSONObject childObj=new JSONObject();header.put(“child”,childObj);JSONArray arrayObj=new JSONArray();headerput(“array”,arrayObj);②反序列化JSON格式消息。反序列化也包括3種情況:簡單的JSONObject對象、嵌套的JSONObject對象、數(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é)議實現(xiàn)相對較容易。HTTP協(xié)議請求方式有GET和POST兩種。由于GET請求發(fā)送大數(shù)據(jù)塊時對URL字符串長度有限制。對象JSON字符串長度可能很長,尤其當(dāng)使用極其復(fù)雜的對象時。

同時,在跨域網(wǎng)絡(luò)以純文本方式發(fā)送所有數(shù)據(jù),安全性難以保證.因此建議采用POST方式發(fā)送機(jī)密或內(nèi)容極長的請求。

6 結(jié)束語

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


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

    關(guān)注

    31

    文章

    5461

    瀏覽量

    173475
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    12

    文章

    9233

    瀏覽量

    85628
  • JAVA
    +關(guān)注

    關(guān)注

    19

    文章

    2971

    瀏覽量

    104854
收藏 人收藏

    評論

    相關(guān)推薦

    qt tcp程序在服務(wù)器端發(fā)送數(shù)據(jù)之前能接收客戶端發(fā)送的數(shù)據(jù)嗎?

    寫了一個tcp的客戶端服務(wù)器端,是服務(wù)器端客戶端發(fā)送文件,但是我想在服務(wù)器端發(fā)送之前先讓客戶端
    發(fā)表于 04-22 20:06

    一個服務(wù)器,多個客戶端,怎么向指定的客戶端發(fā)數(shù)據(jù)

    我用labview做服務(wù)器,單片機(jī)做客戶端客戶端幾百個,怎么區(qū)分客戶端,給指定的客戶發(fā)發(fā)數(shù)據(jù)
    發(fā)表于 06-01 09:26

    labview怎么實現(xiàn)服務(wù)器端一直等待客戶端發(fā)送數(shù)據(jù)

    我現(xiàn)在在做labview的服務(wù)器端,但是當(dāng)客戶端發(fā)送數(shù)據(jù)結(jié)束后,我的服務(wù)器端會報錯。報錯的意思就是說客戶端關(guān)閉,我想知道怎么
    發(fā)表于 08-12 14:34

    STM32F103上網(wǎng)絡(luò)通信實驗中服務(wù)器客戶端連接但不能進(jìn)行數(shù)據(jù)交換該怎么辦?

    我在應(yīng)用原子哥的103板子的網(wǎng)絡(luò)通信實驗時,發(fā)現(xiàn)了一個小問題,就是在服務(wù)器模式下,板子可以與很多的客戶端建立連接,但是在進(jìn)行數(shù)據(jù)交換時,卻只能和第一個連上的客戶端進(jìn)行
    發(fā)表于 10-15 04:37

    為什么LWIP的TCP客戶端服務(wù)器端斷開后繼續(xù)發(fā)送數(shù)據(jù)就無法檢測到連接狀態(tài)?

    發(fā)現(xiàn)LWIP的TCP客戶端有個BUG,當(dāng)服務(wù)器端開之后,如果還繼續(xù)發(fā)送數(shù)據(jù),那就不能檢測到連接狀態(tài)。求助求助
    發(fā)表于 10-29 20:26

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

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

    JSON是什么?如何去創(chuàng)建一種JSON

    1.JSON是一種輕量級的數(shù)據(jù)交換格式。是一種獨立于語言的文本格式。輕量級適合xml相比較。數(shù)據(jù)交換指的是客戶端
    發(fā)表于 07-09 07:06

    如何實現(xiàn)服務(wù)器客戶端數(shù)據(jù)交互?

    如何實現(xiàn)服務(wù)器客戶端數(shù)據(jù)交互?
    發(fā)表于 10-26 07:22

    監(jiān)控系統(tǒng)客戶端服務(wù)端設(shè)計

    項目開發(fā)報告1 項目簡介1.1 概述1.2 開發(fā)環(huán)境1.3 其他支持1.4 應(yīng)用界面1.4.1 服務(wù)器端1.4.2 客戶端1.5 程序使用2 項目開發(fā)2.1 搭建基于實驗平臺數(shù)據(jù)庫2.1.1
    發(fā)表于 12-21 07:02

    請問如何處理從客戶端服務(wù)器的寫操作?

    不知道如何從客戶端服務(wù)器執(zhí)行相同的操作。在 Android 下,我可以將數(shù)據(jù)寫入特性(在 NO RESPONSE 模式下),但我不明白如何在服務(wù)器
    發(fā)表于 01-04 08:22

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

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

    android使用JSON進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)交換

    本文將快速講解 JSON 格式,并通過代碼示例演示如何分別在客戶端服務(wù)器端進(jìn)行 JSON 格式
    發(fā)表于 12-04 11:51 ?0次下載

    網(wǎng)絡(luò)調(diào)試和串口調(diào)試集合UDP TCP客戶端和TCP服務(wù)器端應(yīng)用程序免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是網(wǎng)絡(luò)調(diào)試和串口調(diào)試集合UDP TCP客戶端和TCP服務(wù)器端應(yīng)用程序免費(fèi)下載。
    發(fā)表于 08-30 08:00 ?16次下載
    網(wǎng)絡(luò)調(diào)試和串口調(diào)試集合UDP TCP<b class='flag-5'>客戶端</b>和TCP<b class='flag-5'>服務(wù)器端</b>應(yīng)用程序免費(fèi)下載

    數(shù)據(jù)是怎么樣保證準(zhǔn)確的從客戶端發(fā)送到服務(wù)器端

    你有想過嗎,在計算機(jī)網(wǎng)絡(luò)當(dāng)中,數(shù)據(jù)是怎么樣保證準(zhǔn)確的從客戶端發(fā)送到服務(wù)器端的?中間涉及到了哪些理論?
    的頭像 發(fā)表于 07-01 10:09 ?2108次閱讀

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

    JSON(JavaScript Object Notation)是一種輕量級的數(shù)據(jù)交換格式。它基于JavaScript語法,但也可以被其他語言如Python解析和生成。
    的頭像 發(fā)表于 04-21 16:53 ?1483次閱讀
    主站蜘蛛池模板: 亚洲一区精品伊人久久伊人| 正在播放国产精品| 2020年国产理论| 免费三级网址| 超碰97人人做人人爱少妇| 日本无吗高清| 国产亚洲欧美在线观看三区| 亚洲中文字幕手机版| 暖暖日本 在线 高清| 国产精品永久免费视频| 在线欧美精品一区二区三区| 日本超A大片在线观看| 国产午夜在线精品三级a午夜电影| 艳鉧动漫1~6全集观看在线| 欧美亚洲精品一区二三区8V| 一个人免费视频在线观看| 免费欧美大片| 国产精品97久久久久久AV色戒 | 原神美女被超污app| 国产精自产拍久久久久久蜜| 一区二区乱子伦在线播放| 欧美xxxx印度| 国产一区二区不卡老阿姨| 99精品欧美一区二区三区美图| 少妇无码太爽了视频在线播放 | 特级黑人三人共一女| 久久精品国产免费播放| 伊人久久影院大香线蕉| 日本黄 色大片全| 久久久久久88色偷偷| 大学生高潮无套内谢视频| 在线观看黄色小说| 幸福草电视剧演员表介绍| 欧美日韩亚洲综合2019| 富婆夜店找黑人猛男BD在线| 亚洲香蕉视频在线播放| 日韩精品无码久久一区二区三| 久久亚洲精品无码A片大香大香| 国产精品黄色大片| 亚洲欧美一区二区久久| 青柠高清在线观看完整版|