手动解析json数据

我们都知道网上有很多第三方解析json的库,比如Gson,但是有时候返回的Json必须要我们手动解析

首先看一下我们要解析Json的结构

这里写图片描述

解析原理

原理特别简单,就是我们创建bean,然后通过系统自带的api获取Json里面的数据,最后把数据装进我们bean对象,返回bean对象

代码示例

 private NewsCenterPagerBean parsedJson2(String json) {
        NewsCenterPagerBean bean2 = new NewsCenterPagerBean();


        try {
            JSONObject object = new JSONObject(json);

            JSONObject result = (JSONObject) object.opt("result");
            NewsCenterPagerBean.ResultEntity resultEntity = new NewsCenterPagerBean.ResultEntity();
            bean2.setResult(resultEntity);

            JSONArray data = result.optJSONArray("data");


            if (data != null && data.length() > 0) {

                List<NewsCenterPagerBean.ResultEntity.DataEntity> dataEntitys = new ArrayList<>();

                bean2.getResult().setData(dataEntitys);

                //for循环,解析每一条数据
                for (int i = 0; i < data.length(); i++) {
                    JSONObject jsonObject = (JSONObject) data.get(i);

                    NewsCenterPagerBean.ResultEntity.DataEntity dataEntity = new NewsCenterPagerBean.ResultEntity.DataEntity();
                    //添加到集合中
                    dataEntitys.add(dataEntity);

                    String author_name = jsonObject.optString("author_name");
                    dataEntity.setAuthor_name(author_name);
                    String category = jsonObject.optString("category");
                    dataEntity.setCategory(category);
                    String date = jsonObject.optString("date");
                    dataEntity.setDate(date);
                    String thumbnail_pic_s = jsonObject.optString("thumbnail_pic_s");
                    dataEntity.setThumbnail_pic_s(thumbnail_pic_s);
                    String thumbnail_pic_s02 = jsonObject.optString("thumbnail_pic_s02");
                    dataEntity.setThumbnail_pic_s02(thumbnail_pic_s02);
                    String thumbnail_pic_s03 = jsonObject.optString("thumbnail_pic_s03");
                    dataEntity.setThumbnail_pic_s03(thumbnail_pic_s03);
                    String title = jsonObject.optString("title");
                    dataEntity.setTitle(title);
                    String uniquekey = jsonObject.optString("uniquekey");
                    dataEntity.setUniquekey(uniquekey);
                    String url = jsonObject.optString("url");
                    dataEntity.setUrl(url);


                }
            }

        } catch (JSONException e) {
            e.printStackTrace();
        }

       return bean2;

    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值