gson的简要使用--关于web端和android之间的数据传输
2012-09-25 10:11
204 查看
在实训项目中有项功能需要在android手机端和web端进行数据传输,原本刚开始的时候我使用java自带的Json包来处理,但我发现这种做法太过于麻烦(相对于我来说^ ^),所以,经过我上网找资料后发现原来google公司同样的也提供一个类似于javaJson的开发包,并且google将json解析功能都封装起来,极大的方便数据的传输和解析,好了,下面我们就来看一下我做的例子。。。。。做的不好 望大神们别见笑咯~~~~~。
1.要到网上去下载Gson包
2.在你的android工程里建一个文件夹libs,将上面的三个jar文件复制到此文件夹中
![](http://img.my.csdn.net/uploads/201209/25/1348536634_8689.png)
3.右键点击gson-1.7.1.jar 会看到buil path,再点击add path 加载到android项目中,同样的web端也做同样的处理。
好了,下面我们就来编码了。。
首先是android端的
在一个activity内
在工程里面的src文件夹下我只有两个包(偷懒~~),一个是activity包-用于存放activity,另一个是实体包,用于存放实体类
![](http://img.my.csdn.net/uploads/201209/25/1348537092_4066.png)
在User.java内也就两个属性,String name int age 还有它们的set和get方法。
接下来是activity内
![](http://img.my.csdn.net/uploads/201209/25/1348586173_3487.png)
先声明各种变量属性
注意:这里的额ip地址不能够用127.0.0.1或者是你本机的ip地址,因为android模拟器已经预定了这个ip地址,也就是说127.0.0.1或者本机的ip地址属于android模拟器的ip地址,所以,这里只能用10.0.2.2
实例化个种属性
![](http://img.my.csdn.net/uploads/201209/25/1348586202_9693.png)
至于main.xml的布局文件也就一个Button按钮而已
这里的连接web端的,我是使用httpClient和httpGet等。。。当然,你也可以使用其他的方法去连接 而传参数我是使用http去传的。。。
好了 。。。下面我们先来看要从web端传单个对象怎么传给android端
还是在Button监听类内
![](http://img.my.csdn.net/uploads/201209/25/1348586242_5850.png)
![](http://img.my.csdn.net/uploads/201209/25/1348586306_6542.png)
![](http://img.my.csdn.net/uploads/201209/25/1348586350_5094.png)
这边是解析web端传过来的Gson,,我们可以看到一个函数fromJson(),它的作用就是将一个字符串json格式字符串转换成一个你指定的对象,这里转换为User.class
。。接线来我们看看web端的代码,我是用servlet和android进行交互的,你也可以使用jsp与android进行交互。。过程都是大同小异.
![](http://img.my.csdn.net/uploads/201209/25/1348586515_5799.png)
这里说一下函数toJson(),此函数与fromJson具有相反的功能,它可以将一个对象转换成一个Json格式的字符串..
好了。。。在web端打开Tomcat,运行android模拟器,点击Button 我们就会看到eclisp打印出这样的结果
![](http://img.my.csdn.net/uploads/201209/25/1348586782_1530.png)
对照一下我们先前通过http传过去的数据
看。。。两者已经达到交互咯~~~~~。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
好了,下面我们来看看当我们在servlet哪里连接数据库获得对个对象的数据后该怎样传给android端呢??
其实过程大同小异。。。。。。
我们现在web端哪里修改一下
![](http://img.my.csdn.net/uploads/201209/25/1348586841_2505.png)
打印出str:
![](http://img.my.csdn.net/uploads/201209/25/1348586954_8262.png)
每一个{}内包括的就是一个json对象.....
其他的不变。。。注意跟先前的web端代码进行区别,。。
我们这里是将多个对象存到list内,再用toJson方法将list转换成Json格式的字符串
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
而在android端。。。同样是Buton监听类内
![](http://img.my.csdn.net/uploads/201209/25/1348586889_2802.png)
把原先的注析掉,这里简要的说一下TypeToken这个东西,它的作用你可以认为是将Json字符串内的每一个对象。。拆分,成批的付给你所指定的对象User,返回值是一个list<class T>,不了解Json对象的话,你们可以去百度搜索一下,有关json的格式和书写。。。。。
好了。。启动模拟器后。。点击Button就会出现下面的打印
![](http://img.my.csdn.net/uploads/201209/25/1348586998_8554.png)
好了。。。。。程序通过。。。。。。。。。。。。。
这篇文章就到这里。。希望对大家有用。。同时还是那句话。。。希望大神多点点意见。。我只是个小菜鸟~~~~。
1.要到网上去下载Gson包
2.在你的android工程里建一个文件夹libs,将上面的三个jar文件复制到此文件夹中
![](http://img.my.csdn.net/uploads/201209/25/1348536634_8689.png)
3.右键点击gson-1.7.1.jar 会看到buil path,再点击add path 加载到android项目中,同样的web端也做同样的处理。
好了,下面我们就来编码了。。
首先是android端的
在一个activity内
在工程里面的src文件夹下我只有两个包(偷懒~~),一个是activity包-用于存放activity,另一个是实体包,用于存放实体类
![](http://img.my.csdn.net/uploads/201209/25/1348537092_4066.png)
在User.java内也就两个属性,String name int age 还有它们的set和get方法。
接下来是activity内
![](http://img.my.csdn.net/uploads/201209/25/1348586173_3487.png)
先声明各种变量属性
注意:这里的额ip地址不能够用127.0.0.1或者是你本机的ip地址,因为android模拟器已经预定了这个ip地址,也就是说127.0.0.1或者本机的ip地址属于android模拟器的ip地址,所以,这里只能用10.0.2.2
实例化个种属性
![](http://img.my.csdn.net/uploads/201209/25/1348586202_9693.png)
至于main.xml的布局文件也就一个Button按钮而已
这里的连接web端的,我是使用httpClient和httpGet等。。。当然,你也可以使用其他的方法去连接 而传参数我是使用http去传的。。。
好了 。。。下面我们先来看要从web端传单个对象怎么传给android端
还是在Button监听类内
![](http://img.my.csdn.net/uploads/201209/25/1348586242_5850.png)
![](http://img.my.csdn.net/uploads/201209/25/1348586306_6542.png)
![](http://img.my.csdn.net/uploads/201209/25/1348586350_5094.png)
这边是解析web端传过来的Gson,,我们可以看到一个函数fromJson(),它的作用就是将一个字符串json格式字符串转换成一个你指定的对象,这里转换为User.class
。。接线来我们看看web端的代码,我是用servlet和android进行交互的,你也可以使用jsp与android进行交互。。过程都是大同小异.
![](http://img.my.csdn.net/uploads/201209/25/1348586515_5799.png)
这里说一下函数toJson(),此函数与fromJson具有相反的功能,它可以将一个对象转换成一个Json格式的字符串..
好了。。。在web端打开Tomcat,运行android模拟器,点击Button 我们就会看到eclisp打印出这样的结果
![](http://img.my.csdn.net/uploads/201209/25/1348586782_1530.png)
对照一下我们先前通过http传过去的数据
看。。。两者已经达到交互咯~~~~~。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
好了,下面我们来看看当我们在servlet哪里连接数据库获得对个对象的数据后该怎样传给android端呢??
其实过程大同小异。。。。。。
我们现在web端哪里修改一下
![](http://img.my.csdn.net/uploads/201209/25/1348586841_2505.png)
打印出str:
![](http://img.my.csdn.net/uploads/201209/25/1348586954_8262.png)
每一个{}内包括的就是一个json对象.....
其他的不变。。。注意跟先前的web端代码进行区别,。。
我们这里是将多个对象存到list内,再用toJson方法将list转换成Json格式的字符串
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
而在android端。。。同样是Buton监听类内
![](http://img.my.csdn.net/uploads/201209/25/1348586889_2802.png)
把原先的注析掉,这里简要的说一下TypeToken这个东西,它的作用你可以认为是将Json字符串内的每一个对象。。拆分,成批的付给你所指定的对象User,返回值是一个list<class T>,不了解Json对象的话,你们可以去百度搜索一下,有关json的格式和书写。。。。。
好了。。启动模拟器后。。点击Button就会出现下面的打印
![](http://img.my.csdn.net/uploads/201209/25/1348586998_8554.png)
好了。。。。。程序通过。。。。。。。。。。。。。
这篇文章就到这里。。希望对大家有用。。同时还是那句话。。。希望大神多点点意见。。我只是个小菜鸟~~~~。
相关文章推荐
- 【Android 开发】: Android客户端与服务端之间使用GSON交互数据。
- 关于Android使用HttpURLConnection传输含有中文JSON数据的报错、乱码问题
- 关于android和服务器之间的json数据传输总结
- Android中在Activity之间传递数据的另一种方法, 使用application context
- Android下使用Gson解析JSON数据
- 关于Android及Web上的界面帧率、CPU占用率、内存使用量的监测
- Android训练课程(Android Training) - 使用Volley传输网络数据(Transmitting Network Data Using Volley)
- 一起来开发Android的天气软件(四)——使用Gson解析数据
- 在Android系统使用socket在Java层和native之间数据通信
- Android中使用Gson解析JSON数据
- Android中Activity之间的数据传递和Intent使用
- Android:客户端和服务器之间传输数据加密
- 如何使用在两个ftp之间进行数据传输
- Android中级教程之(五)----->不同Activity之间的数据传递,Bundle对象的使用!
- Android JSON数据与实体类之间的相互转化-------GSON的用法
- Android使用JNI实现Java与C之间传递数据(转)
- 关于在android中使用webview 和js交互
- 使用httpclient实现上传下载(javaWeb系统数据传输http实现)
- Android 使用蓝牙技术实现终端间数据传输
- Android 和 PHP 之间进行数据加密传输