JSON

J2ME/J2EE的JSON数据交换的方式

字号+ 作者:H5之家 来源:H5之家 2017-03-13 11:05 我要评论( )

J2ME/J2EE的JSON数据交换的方式 发布时间: 2012-11-21 14:39:04 作者:拓胜科技 来源:拓胜科技 浏览次数: 次 本文和大家重点讨论一下基于J2ME/J2EE的JSON数据交换,J2ME(Java2PlatformMicroEdition)是Java2的一部分。将Java语言与平台无关的特性移植到

J2ME/J2EE的JSON数据交换的方式

发布时间: 2012-11-21 14:39:04   作者:拓胜科技   来源:拓胜科技   浏览次数: 次  

本文和大家重点讨论一下基于J2ME/J2EE的JSON数据交换,J2ME(Java2PlatformMicroEdition)是Java2的一部分。将Java语言与平台无关的特性移植到小型电子设备上,允许移动无线设备之间共享应用程序。

随 着无线技术的发展和无线通信设备的普及,基于手机、PDA等小型消费类和嵌人式设备的无线移动应用越来越广泛。在可编程手机中,基于Java的手机最为通 行,事实上,Java已为多数手机制造商所接受,成为手机应用与服务的标准。构建网络感知软件时,选择正确的数据交换格式是一项重要的设计决策,尤其在设 计移动和嵌入式应用程序时,此时,轻量和有效等特性是需要考虑的重要特征。此类特征非常重要,因为它们可转化为较低的计算要求和功耗使用、能发挥更好的性 能以及较低的运营成本。这里研究JSON数据交换格式相比XML和传统数据交换格式所具有的优势,并提出在客户端(J2ME)与服务器端(J2EE)之间 采用JSON数据交换格式的一般实现框架。

J2ME(Java2PlatformMicroEdition)是 Java2的一部分。将Java语言与平台无关的特性移植到小型电子设备上,允许移动无线设备之间共享应用程序。J2ME是针对有限硬件、有限功率、有限 网络连接设备进行应用开发的技术,适合在无限通信设备上开发交互性较强的网络应用。在此基础上编写的MIDP应用程序具有良好的兼容性和可移植性,可在 PDA等手持设备上很好的运行。

J2EE是Java2平台的企业版,是一种利用Java2平台简化企业解决方案的体系结构。J2EE使用多层分布应用模型,其典型的4层结构为:

运行在客户端机器上的客户层组件,如Web浏览器、JavaApplet等;

运行在J2EE服务器上的Web层组件,如Servlet和JSP;

运行在J2EE服务器上的业务逻辑层组件(EJB);

运行在EJS(EnterpriseInformationSystem)服务器上的企业信息系统层软件。

JSON(JavaScriptObjectNoation)是一种轻量级的数据交换格式,易于阅读和编写,也易于机器解析和生成。JSON采用完全独立于语言的文本格式,但也使用类似于C语言家族的习惯。这些特性使JSON成为理想的数据交换语言。

JSON格式的数据有对象和数组两种。对象是一个无序的“名称/值”对集合。一个对象以“{”开始,“}”结束。每个“名称”后跟一个“:”;“名称/值”对之间使用“,”分隔。数组值(value)的有序结合。一个数组以“{”开始,“}”结束。值之间使用“,”分隔。

XML是 一种用于描述信息存储格式的语言,其优点是健壮性和描述性强,且是新一代开放、可互操作的WebServices选用的通信数据格式。在移动应用程序中, 开发者通常自己创建数据交换格式或可扩展标记语言XML。前者的优势是可针对特定情况进行调整,从而最大限度地提高性能,并最大限度地利用计算资源。当在 HTTP上使用后者时,其优势在于它是事实上的数据交换标准。另外,在XML中使用的基于文本的表示形式使其易于调试。这两种方法各有其缺陷,前者本质上 是专用的、非标准的,并可能是不可互操作的,而后者数据表示过于正规和繁琐,对于移动和嵌入式应用程序尤其如此。

JSON是 一种轻量级的数据交换格式,是基于文本的,具有良好的可读性且易于调试。JSON支持所有基本数据类型的表示法,并提供将这些数据类型相互解析为Java 类型的方法。对于轻量级应用,JSON数据交换格式能够较好的节省手机的计算资源,减少网络传输时间,加快网络传输速度。

框 架结构包括2部分:J2ME客户端和J2EE服务器端。客户端采用J2ME的MIDP技术,服务器端使用J2EE的servlet技术。客户端使用 HTTP协议发送已序列化的JSON消息到服务器端,服务器端通过反序列化JSON消息,根据客户端请求进行相应的操作后,把请求的结果序列化成JSON 消息返回给客户端,客户端获取到返回的JSON消息后,反序列化成具体需要的数据。图1为总体设计框架。

 

总体设计框架

 

服务器端使用serverlet接收客户端发送的基于HTTP协议的JSON消息,并调用JSONObject类对JSON进行反序列化操作,得到所需的详细信息。根据JSON格式的数据类型,需要分3种情况对JSON格式的数据进行反序列化:

简单的对象形式。实现方法:创建一个JSONObiect实例,然后调用getString()函数,具体形式如下:

2.

其中message为接收到的JSON消息,title代表想要获取的名称。

对象里面嵌套对象的形式。实现方法:在原对象基础上调用其getJSONObject()方法。具体形式如下:

2.

数组形式。实现方法:在原对象的基础上调用其getJSONArray(),得到一个数据类型为JSONOebject的数组。反序列化得到请求的详细信 息后,J2EE端根据请求进行其他操作,如从网络上获取XML数据、从数据库获取数据等。得到数据后,服务器端把数据序列化成JSON格式消息,发送到客 户端。

客户端向服务器端发送已被序列化的JSON格式消息,然后等待服务器端返回的消息,接到服务器返回的消息后,反序列化JSON消息。处理过程调用ison.me的API。具体实现如下:

序列化成JSON格式。只需调用JSONObjeet的put方法添加相关项。JSONObject可以添加3种对象:简单的对象、JSONObject对象、JSONArray对象。具体操作如下:

2.

4.

6.

8.

10.

反序列化JSON格式消息。反序列化也包括3种情况:简单的JSONObject对象、嵌套的JSONObject对象、数组对象。具体实现如下:

3.

6.

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 对象与 JSON

    对象与 JSON

    2017-03-13 12:00

  • 在PHP 中使用JSON

    在PHP 中使用JSON

    2017-03-12 18:00

  • UE4学习:下载文件并转成JSON类型数据

    UE4学习:下载文件并转成JSON类型数据

    2017-03-12 09:00

  • dojo1.1.0学习总结--Gird绑定JSON数据案例

    dojo1.1.0学习总结--Gird绑定JSON数据案例

    2017-03-12 08:04

网友点评