您的位置:首页 > 编程语言 > Java开发

安卓使用Gson解析服务器返回Json数组,以及java服务器怎样返回list集合的Json数据(原创)

2017-08-11 10:59 941 查看
版型有点难看,但都是我亲测好用过了才发表的 大家耐心看哈

加入服务器给我们返回这样的数据,我们怎样处理呢?

下面开始~~

[{"bigImg":"20170810205804.png","touXiang":"20170810205804.png","userCount":11,"wangMing":"wangrun","biaoTi":"直播标题","leShiId":955959,"zhiBoUrl":"直播URl"},{"bigImg":"20170810211640.png","touXiang":"20170810211640.png","userCount":11,"wangMing":"wangrun","biaoTi":"","leShiId":915959,"zhiBoUrl":"rtmp://21469.mpull.live.lecloud.com/live/865982024518063?tm=20170810211641&sign=3b9e38089272ad00f6f5e7d66af5f22d"}]

首先安卓需要接收服务器传过来的数据,那我们就从服务器开始讲

1.首先我是用struts2来做的控制器 安卓发送请求 zhuBo_FaXianQuery() 方法接收请求并处理

2.  jar 包的话 可以去我资源里下载,也可以百度下载,毕竟不用花积分

3.我的资源找:将list类型数据转换成json格式需要的包

public void zhuBo_FaXianQuery() {
System.out.println("進來啦");

//list 这个是存放数据的list集合

//dao.zhuBo_FaXianQuery();  这是dao层的查询全部的方法 
List<Zhibo_zhuBoPlay> list=dao.zhuBo_FaXianQuery();

//我们遍历一下 看看是否拿到了数据
for (Zhibo_zhuBoPlay zhuBo : list) {
System.out.println(zhuBo.getZhiBoUrl()+":播放地址");
}

//通过JSONArray.fromObject(list).toString(); 我们就可以得到了 底部我会附上jar包
String jsonString = JSONArray.fromObject(list).toString();
try {
System.out.println("数据:"+jsonString);

//将数据返回
response.getWriter().write(jsonString);

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("執行完成");
// return SUCCESS;
}

到此为止  我们服务器就写完了  接下来是安卓请求端的代码

使用OkHttp写的 流程大家都懂,主要就是讲解一下返回的JsonArray的数据时候的处理

boFang =gson.fromJson(data,new TypeToken<List<BoFangEntity>>() {}.getType());   //这句话我们就能得到一个List集合数据了


List<BoFangEntity> boFang = new ArrayList<>();


//请求数据 赋值 显示
OkHttpClient client=new OkHttpClient();
Request request=new Request.Builder().get().url("http://192.168.3.105:8080/MyBatisAndStrutsAndSpring/zhuBo_FaXianQuery").build();
client.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {

}
@Override
public void onResponse(Call call, Response response) throws IOException {

String data=response.body().string();
Log.e("wr_FaXian",data);
Gson gson=new Gson();
boFang =gson.fromJson(data,new TypeToken<List<BoFangEntity>>() {}.getType());
if(boFang.size()<=0){
Log.e("wr_list","空的!!!");return;
}
for (BoFangEntity in:boFang){
Log.e("wr_list",""+in.getWangMing());
}
}
});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐