手动解析json

1 示例json数据链接 http://api.bilibili.com/online_list?_device=android&platform=android&typeid=13&sign=a520d8d8f7a7240013006e466c8044f7

2 此数据格式的json不能直接用GsonFormat自动生成,需要手动生成。生成的bean类如下

public class TestBean
{
    private int code;
    private List<ListBean> list;

    public int getCode()
    {
        return code;
    }

    public void setCode(int code)
    {
        this.code = code;
    }

    public List<ListBean> getList()
    {
        return list;
    }

    public void setList(List<ListBean> list)
    {
        this.list = list;
    }

    public static class ListBean
    {
        private String aid;
        private String author;
        private String create;
        private String description;
        private String duration;
        private int mid;
        private String pic;
        private String title;
        private String typename;

        public String getAid()
        {
            return aid;
        }

        public void setAid(String aid)
        {
            this.aid = aid;
        }

        public String getAuthor()
        {
            return author;
        }

        public void setAuthor(String author)
        {
            this.author = author;
        }

        public String getCreate()
        {
            return create;
        }

        public void setCreate(String create)
        {
            this.create = create;
        }

        public String getDescription()
        {
            return description;
        }

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

        public String getDuration()
        {
            return duration;
        }

        public void setDuration(String duration)
        {
            this.duration = duration;
        }

        public int getMid()
        {
            return mid;
        }

        public void setMid(int mid)
        {
            this.mid = mid;
        }

        public String getPic()
        {
            return pic;
        }

        public void setPic(String pic)
        {
            this.pic = pic;
        }

        public String getTitle()
        {
            return title;
        }

        public void setTitle(String title)
        {
            this.title = title;
        }

        public String getTypename()
        {
            return typename;
        }

        public void setTypename(String typename)
        {
            this.typename = typename;
        }

        @Override
        public String toString()
        {
            return "ListBean{" +
                   "aid='" + aid + '\'' +
                   ", author='" + author + '\'' +
                   ", create='" + create + '\'' +
                   ", description='" + description + '\'' +
                   ", duration='" + duration + '\'' +
                   ", mid=" + mid +
                   ", pic='" + pic + '\'' +
                   ", title='" + title + '\'' +
                   ", typename='" + typename + '\'' +
                   '}';
        }
    }
3  联网请求得到json数据,手动解析json数据

 private TestBean processData(String json)
    {
        TestBean testBean = new TestBean();
        try
        {
            List<TestBean.ListBean> list = new ArrayList<>();

            JSONObject jsonObject = new JSONObject(json);
            int code = jsonObject.optInt("code");

            testBean.setCode(code);
            JSONObject listObject = jsonObject.optJSONObject("list");
            testBean.setList(list);
            if (listObject != null)
            {
                for (int i = 0; i < 12; i++)
                {

                    JSONObject dataobject = listObject.optJSONObject("" + i);
                    if (dataobject != null)
                    {
                        TestBean.ListBean listBean = new TestBean.ListBean();
                        String aid = dataobject.optString("aid");
                        listBean.setAid(aid);
                        String author = dataobject.optString("author");
                        listBean.setAuthor(author);
                        String create = dataobject.optString("create");
                        listBean.setCreate(create);
                        String description = dataobject.optString("description");
                        listBean.setDescription(description);
                        String duration = dataobject.optString("duration");
                        listBean.setDuration(duration);
                        String pic = dataobject.optString("pic");
                        listBean.setPic(pic);
                        String title = dataobject.optString("title");
                        listBean.setTitle(title);
                        String typename = dataobject.optString("typename");
                        listBean.setTypename(typename);
                        int mid = dataobject.optInt("mid");
                        listBean.setMid(mid);

                        list.add(listBean);

                    }

                }
            }

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

        }

        return testBean;
    }

猜你喜欢

转载自blog.csdn.net/li_huai_dong/article/details/71516104