频道栏目
首页 > 资讯 > 其他 > 正文

关于Gson解析复杂类型的json数据

17-06-21        来源:[db:作者]  
收藏   我要投稿

关于Gson解析复杂类型的json数据

最近在写一个app项目,搭建网络框架的时候,遇到一个问题客户端用gson解析服务器返回的复杂json数据,之所以说它复杂是因为服务器返回的json数据不仅包含对象类型,还包含一个数组列表list,list下又包含多个对象,返回数据如下(用中括号括起来的为list部分,只不过里面的数据为空)

(1)返回正确时的json数据如下:

{"status": "true", "data": {"count": 0, "list": []}}

(2)返回错误时的json数据如下:

{"status": "false", "err_code": "err_2","description":"\u670d\u52a1\u5668\u4e0a\u4f20\u89c6\u9891\u5931\u8d25"}

解决方法是封装一个包括status、data、count、list、err_code、description的Bean类:

 

public class BaseResp implements Serializable{

    private String status;
    @SerializedName("err_code")
    private String errCode;
    private MetaData data;
    private String description;

    public String getStatus() {
        return status;
    }
    public void setStatus(String status) {
        this.status = status;
    }
    public MetaData getData() {
        return data;
    }

    public void setData(MetaData data) {
        this.data = data;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public String getErrCode() {
        return errCode;
    }
    
    public void setErrCode(String errCode) {
        this.errCode = errCode;
    }
}

 

由于以后还要封装其他类型的list,所以我把data封装成一个MetaData类,以后还可以增加字段:

 

public class MetaData {
    private List list;
    private int count;

    public int getCount() {
        return count;
    }

    public void setCount(int count) {
        this.count = count;
    }

    public List getList() {
        return list;
    }

    public void setList(List list) {
        this.list = list;
    }
}
这里的MetaVideo是一个视频实体类,这样封装好之后,使用以下方法就可以解析出服务器响应的数据了:

 

 

String json = new String(response);
BaseResp baseResp = myGson.fromJson(json, BaseResp.class);
return myGson.fromJson(json, BaseResp.class);

 

相关TAG标签
上一篇:回调 简析
下一篇:Android Studio 2.2 打包Jar调用.so动态链接库
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站