成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

探討J2ME/J2EE的JSON數據交換方式

開發 前端
這里研究JSON數據交換格式相比XML和傳統數據交換格式所具有的優勢,并提出在客戶端(J2ME)與服務器端(J2EE)之間采用JSON數據交換格式的一般實現框架。

本文和大家重點討論一下基于J2ME/J2EE的JSON數據交換,J2ME(Java2PlatformMicroEdition)是Java2的一部分。將Java語言與平臺無關的特性移植到小型電子設備上,允許移動無線設備之間共享應用程序。

基于J2ME/J2EE的JSON數據交換的探討

1引言

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

2J2ME/J2EE簡介

J2ME(Java2PlatformMicroEdition)是Java2的一部分。將Java語言與平臺無關的特性移植到小型電子設備上,允許移動無線設備之間共享應用程序。J2ME是針對有限硬件、有限功率、有限網絡連接設備進行應用開發的技術,適合在無限通信設備上開發交互性較強的網絡應用。在此基礎上編寫的MIDP應用程序具有良好的兼容性和可移植性,可在PDA等手持設備上很好的運行。

J2EE是Java2平臺的企業版,是一種利用Java2平臺簡化企業解決方案的體系結構。J2EE使用多層分布應用模型,其典型的4層結構為:

①運行在客戶端機器上的客戶層組件,如Web瀏覽器、JavaApplet等;

②運行在J2EE服務器上的Web層組件,如Servlet和JSP;

③運行在J2EE服務器上的業務邏輯層組件(EJB);

④運行在EJS(EnterpriseInformationSystem)服務器上的企業信息系統層軟件。

3JSON簡介

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

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

4數據交換格式分析

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

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

5數據交換框架實現

5.1框架總體設計

框架結構包括2部分:J2ME客戶端和J2EE服務器端??蛻舳瞬捎肑2ME的MIDP技術,服務器端使用J2EE的servlet技術。客戶端使用HTTP協議發送已序列化的JSON消息到服務器端,服務器端通過反序列化JSON消息,根據客戶端請求進行相應的操作后,把請求的結果序列化成JSON消息返回給客戶端,客戶端獲取到返回的JSON消息后,反序列化成具體需要的數據。圖1為總體設計框架。

總體設計框架

5.2服務器端

服務器端使用serverlet接收客戶端發送的基于HTTP協議的JSON消息,并調用JSONObject類對JSON進行反序列化操作,得到所需的詳細信息。根據JSON格式的數據類型,需要分3種情況對JSON格式的數據進行反序列化:

①簡單的對象形式。實現方法:創建一個JSONObiect實例,然后調用getString()函數,具體形式如下:

  1. JSONObjectjsonObj=newJSONObject(message);  
  2.  
  3. Stringtitle=jsonObj.getString(“title”);  

其中message為接收到的JSON消息,title代表想要獲取的名稱。

②對象里面嵌套對象的形式。實現方法:在原對象基礎上調用其getJSONObject()方法。具體形式如下:

  1. JSONObjectbody_obj=jsonObj.getJSONObject();  
  2.  

③數組形式。實現方法:在原對象的基礎上調用其getJSONArray(),得到一個數據類型為JSONOebject的數組。反序列化得到請求的詳細信息后,J2EE端根據請求進行其他操作,如從網絡上獲取XML數據、從數據庫獲取數據等。得到數據后,服務器端把數據序列化成JSON格式消息,發送到客戶端。

5.3客戶端

客戶端向服務器端發送已被序列化的JSON格式消息,然后等待服務器端返回的消息,接到服務器返回的消息后,反序列化JSON消息。處理過程調用ison.me的API。具體實現如下:

①序列化成JSON格式。只需調用JSONObjeet的put方法添加相關項。JSONObject可以添加3種對象:簡單的對象、JSONObject對象、JSONArray對象。具體操作如下:

  1. JSONObjectheader=newJSONObjeet();  
  2.  
  3. headerput(“title”,“yahoonews”);  
  4.  
  5. JSONObjectchildObj=newJSONObject();  
  6.  
  7. header.put(“child”,childObj);  
  8.  
  9. JSONArrayarrayObj=newJSONArray();  
  10.  
  11. headerput(“array”,arrayObj);  

②反序列化JSON格式消息。反序列化也包括3種情況:簡單的JSONObject對象、嵌套的JSONObject對象、數組對象。具體實現如下:

  1. JSONObjectobj=newJSONObject(str);  
  2. Stringtitle=obj-getString(“title”);  
  3.  
  4. intcount=obj.getInt(“count”);
  5. JSONObjectbody=obj.getJSONObject(“body”);  
  6.  
  7. JSONArrayarrayObj=obj.getJSONArray(“array”);  

5.4傳輸協議層

客戶端和服務器端之間的通信采用HTTP協議。HTTP協議是一種廣泛使用的協議,所有MIDP設備都支持HTTP協議。且在各種不同的無線網絡上,HTTP協議實現相對較容易。HTTP協議請求方式有GET和POST兩種。由于GET請求發送大數據塊時對URL字符串長度有限制。對象JSON字符串長度可能很長,尤其當使用極其復雜的對象時。

同時,在跨域網絡以純文本方式發送所有數據,安全性難以保證.因此建議采用POST方式發送機密或內容極長的請求。

6結束語

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

【編輯推薦】

  1. JSON數據在J2ME下的構造和解析
  2. 深入了解J2ME Polish+Eclipse配置過程
  3. 探究J2ME中cookie庫的管理
  4. 術語匯編 J2ME 3D技術簡介
  5. 解析Linux下如何用eclipse搭建J2ME開發環境
責任編輯:佚名 來源: eccn.com
相關推薦

2009-06-08 21:34:09

J2EEJ2SEJ2ME

2009-07-09 16:06:10

JDK J2EE J2

2010-09-29 10:15:35

JDKJ2EEJ2SE

2009-06-19 16:39:54

J2EEJ2SEJ2ME

2010-09-29 10:22:47

J2SEJ2EEJ2ME

2010-09-29 08:57:04

J2ME前景

2009-06-10 14:10:23

J2EE學習J2EE是什么

2009-06-10 13:37:06

J2EE可伸縮性J2EE靈活性J2EE維護

2009-06-23 08:06:46

J2EE體系架構J2EE模型J2EE設計模式

2009-06-23 16:48:26

J2EE常見問題J2EE平臺

2009-06-11 17:06:11

J2EE歷史Java EE概述

2010-09-29 09:19:39

J2ME開發工具

2010-09-30 09:56:26

J2ME Polish

2010-09-30 10:40:58

J2MEJSON

2010-09-29 13:50:31

J2MEJ2SE

2009-06-18 16:13:14

J2EE開發

2009-06-22 16:21:02

J2EE線程

2010-09-30 13:28:55

J2ME圖形

2009-06-23 11:30:16

RMSJ2ME

2009-03-22 09:38:03

Android移植J2ME
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 激情小说综合网 | 一级毛片视频在线 | 日韩高清黄色 | 国产亚洲一区二区精品 | 国产人成精品一区二区三 | 国产精品视频一区二区三区不卡 | 特黄视频 | av一区二区三区四区 | 久久成人精品视频 | 免费成人高清在线视频 | 成年人在线观看视频 | 久久综合久色欧美综合狠狠 | 国产精品久久久久久久久久久久冷 | 精品国偷自产在线 | a在线观看| 日本aa毛片a级毛片免费观看 | 欧美成人二区 | 亚洲精品久久久久久久久久久久久 | 久久出精品 | 97国产精品视频人人做人人爱 | 国产a区| 免费看a | 久久婷婷国产 | 91精品国产高清久久久久久久久 | 精品欧美一区二区久久久伦 | 亚洲一本 | 久久夜夜| 欧美男人亚洲天堂 | 欧美一级三级在线观看 | 国产精品欧美一区二区 | 毛片视频免费观看 | 国产精品久久 | 天天爽网站| 亚洲精品永久免费 | 国产精品欧美精品 | 日韩欧美中文字幕在线观看 | 少妇黄色| 亚洲高清免费视频 | 中文字幕一区二区三区四区五区 | 天天艹日日干 | 羞羞视频网站免费看 |