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


版型有点难看,但都是我亲测好用过了才发表的 大家耐心看哈



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

下面开始~~


[{"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 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>() {}.getType());   //这句话我们就能得到一个List集合数据了

List 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>() {}.getType());
          if(boFang.size()<=0){
              Log.e("wr_list","空的!!!");return;
          }
          for (BoFangEntity in:boFang){
          Log.e("wr_list",""+in.getWangMing());
      }
      }
    });


你可能感兴趣的:(android)