json & gson

使用hijson来看json



可以看到这是带有嵌套,那么我们可以把嵌套的这一部分写成一个内部类


看javabean

/**
 * 网络分类信息的封装
 * 
 * 字段名字必须和服务器返回的字段名一致, 方便json解析
 * 提示:如果json数据里有某字段,但是类里面没有,则解析的时候忽略。
 *       如果类里面有某个字段,但是json里面没有,则解析完后该字段为空。
 */
public class NewsData {
	public ArrayList<NewsMenuData> data;
	public int retcode;

	// 侧边栏数据对象(共有四个 ,分别是新闻,专题,组图,互动)
	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 + "]";
	}
}


用xutils来联网并获取原数据,然后以Gson解析

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();
					}
				});
	}
protected void parseData(String result) {
		Gson gson = new Gson();
		mNewsData = gson.fromJson(result, NewsData.class);
		System.out.println("解析结果:" + mNewsData);
	}


来看输出log

解析结果:NewsData [data=[NewsMenuData [title=新闻, children=[NewsTabData [title=北京], NewsTabData [title=中国], 

NewsTabData [title=国际], NewsTabData [title=体育], NewsTabData [title=生活], NewsTabData [title=旅游], NewsTabData [title=

科技], NewsTabData [title=军事], NewsTabData [title=时尚], NewsTabData [title=财经], NewsTabData [title=育儿], NewsTabData 

[title=汽车]]], NewsMenuData [title=专题, children=null], NewsMenuData [title=组图, children=null], NewsMenuData [title=互

动, children=null]]]



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值