关于android访问servlet 获取数据库数据的一般步骤 第二节 利用gson封装和解析List数据

关于android访问servlet 获取数据库数据的一般步骤 第二节

** android端通过服务器访问数据库并获得数据一般分为三个步骤。 **
1、第一步,服务端即servlet,通过jdbc连接数据库,获得表中部分或全部数据。
2、第二步,servlet将数据(一般为List数据集合)处理之后发送给android端。
3、第三步,android端获得数据后,解析成自己所需要的数据。
** 二、servlet处理list数据发送给android端**
这个步骤笔者采用的是gson框架进行list数据的处理,所需材料:myeclipse,tomcat,gson-2.7;

DataOutputStream dos;
List<Map<String, Object>> mDataList;
dos=new DataOutputStream(response.getOutputStream());//response是servlet中的HttpServletResponse对象。
String sqlString="select * from user";	//user是自定义表名
mDataList=BaseDao.findList(sqlString);	
if(mDataList!=null){
	Gson gson=new Gson();
	String reString=gson.toJson(mDataList);
	System.out.println("gson数据长度"+reString.length());
	dos.writeUTF(reString);
}else{
	dos.writeUTF("NO");
}

如果一张User表是这样的

namepass
user1pass1
user2pass2

那么使用gson封装后的数据就是这样的
[{“name”:“user1”,“pass”:“pass1”},{“name”:“user2”,“pass”:“pass2”}]

需要注意的是,这是个String类型的数据;

** 三、android端解析数据gson封装的数据**
这个步骤笔者采用的是gson框架进行返回数据的处理,所需材料:AndroidStudio,gson-2.7;
同样的,我们在android端采用同样的步骤来将返回数据解析为list数据。
在Gson() 中,有一个gson.fromJson(json, typeOfT)方法,第一个参数为String的带解析json语句,第二个参数可以是一个Type对象,也可以是一个Class对象。

例如,如果要解析为int对象,则写法为:

Gson gson=new Gson();
int a=gson.fromJson( json , int.class );

但是这种方法没法解析list对象,所以Gson()中提供了TypeToken()类来实现这种需求。

Gson gson=new Gson();
List<Object> list=gson.fromJson( json , new TypeToken<List<Object>>( ) {  }.getType()    );

当这一步完成后,android端就获得了表格中的部分或全部数据,之后便是android端的自定义ListView,或者ReclerView这些操作了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值