您的位置:首页 > Web前端 > JavaScript

xutils和Gson解析Json数据

2016-12-20 10:02 501 查看
一、编写实体类,实体类字段名字必须和服务器返回的字段名一致,可以不写完每一个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);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: