xutils和Gson解析Json数据

一、编写实体类,实体类字段名字必须和服务器返回的字段名一致,可以不写完每一个Json字段,

根据需要自己编写实体类字段

/**
 *
 * 字段名字必须和服务器返回的字段名一致, 方便gson解析
 *
 */
public class NewsData {

    public int retcode;
    public ArrayList<NewsMenuData> data;

    // 侧边栏数据对象
    public class NewsMenuData {
        public String id;
        public String title;
        public int type;
        public String url;

        public ArrayList<NewsTabData> children;

        @Override
        public String toString() {
            return "NewsMenuData [title=" + title + ", children=" + children
                    + "]";
        }
    }

    // 新闻页面下11个子页签的数据对象
    public class NewsTabData {
        public String id;
        public String title;
        public int type;
        public String url;

        @Override
        public String toString() {
            return "NewsTabData [title=" + title + "]";
        }
    }

    @Override
    public String toString() {
        return "NewsData [data=" + data + "]";
    }

}

二、从服务器获取数据

/**
 * 从服务器获取数据
 */
private void getDataFromServer() {
    HttpUtils utils = new HttpUtils();

    // 使用xutils发送请求
    utils.send(HttpMethod.GET, GlobalContants.CATEGORIES_URL,
            new RequestCallBack<String>() {

                // 访问成功, 在主线程运行
                @Override
                public void onSuccess(ResponseInfo responseInfo) {
                    String result = (String) responseInfo.result;
                    System.out.println("返回结果:" + result);

                    parseData(result);
                }

                // 访问失败, 在主线程运行
                @Override
                public void onFailure(HttpException error, String msg) {
                    Toast.makeText(mActivity, msg, Toast.LENGTH_SHORT)
                            .show();
                    error.printStackTrace();
                }

            });
}

三、解析JSON数据

/**
* 解析网络数据
*
* @param result
*/
protected void parseData(String result) {
    Gson gson = new Gson();
    mNewsData = gson.fromJson(result, NewsData.class);
    System.out.println("解析结果:" + mNewsData);
    System.out.println("解析结果:" + mNewsData.retcode);
}

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值