gson的简要使用--关于web端和android之间的数据传输

在实训项目中有项功能需要在android手机端和web端进行数据传输,原本刚开始的时候我使用java自带的Json包来处理,但我发现这种做法太过于麻烦(相对于我来说^ ^),所以,经过我上网找资料后发现原来google公司同样的也提供一个类似于javaJson的开发包,并且google将json解析功能都封装起来,极大的方便数据的传输和解析,好了,下面我们就来看一下我做的例子。。。。。做的不好 望大神们别见笑咯~~~~~。

1.要到网上去下载Gson包

2.在你的android工程里建一个文件夹libs,将上面的三个jar文件复制到此文件夹中

3.右键点击gson-1.7.1.jar 会看到buil path,再点击add path 加载到android项目中,同样的web端也做同样的处理。


好了,下面我们就来编码了。。

首先是android端的

在一个activity内

在工程里面的src文件夹下我只有两个包(偷懒~~),一个是activity包-用于存放activity,另一个是实体包,用于存放实体类


在User.java内也就两个属性,String name int age 还有它们的set和get方法。

接下来是activity内



先声明各种变量属性

注意:这里的额ip地址不能够用127.0.0.1或者是你本机的ip地址,因为android模拟器已经预定了这个ip地址,也就是说127.0.0.1或者本机的ip地址属于android模拟器的ip地址,所以,这里只能用10.0.2.2

实例化个种属性



至于main.xml的布局文件也就一个Button按钮而已



这里的连接web端的,我是使用httpClient和httpGet等。。。当然,你也可以使用其他的方法去连接 而传参数我是使用http去传的。。。

好了 。。。下面我们先来看要从web端传单个对象怎么传给android端

还是在Button监听类内





这边是解析web端传过来的Gson,,我们可以看到一个函数fromJson(),它的作用就是将一个字符串json格式字符串转换成一个你指定的对象,这里转换为User.class

。。接线来我们看看web端的代码,我是用servlet和android进行交互的,你也可以使用jsp与android进行交互。。过程都是大同小异.


这里说一下函数toJson(),此函数与fromJson具有相反的功能,它可以将一个对象转换成一个Json格式的字符串..

好了。。。在web端打开Tomcat,运行android模拟器,点击Button 我们就会看到eclisp打印出这样的结果



对照一下我们先前通过http传过去的数据


看。。。两者已经达到交互咯~~~~~。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

好了,下面我们来看看当我们在servlet哪里连接数据库获得对个对象的数据后该怎样传给android端呢??

其实过程大同小异。。。。。。

我们现在web端哪里修改一下



打印出str:



每一个{}内包括的就是一个json对象.....

其他的不变。。。注意跟先前的web端代码进行区别,。。

我们这里是将多个对象存到list内,再用toJson方法将list转换成Json格式的字符串

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

而在android端。。。同样是Buton监听类内



把原先的注析掉,这里简要的说一下TypeToken这个东西,它的作用你可以认为是将Json字符串内的每一个对象。。拆分,成批的付给你所指定的对象User,返回值是一个list<class T>,不了解Json对象的话,你们可以去百度搜索一下,有关json的格式和书写。。。。。

好了。。启动模拟器后。。点击Button就会出现下面的打印



好了。。。。。程序通过。。。。。。。。。。。。。

这篇文章就到这里。。希望对大家有用。。同时还是那句话。。。希望大神多点点意见。。我只是个小菜鸟~~~~。



  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值