一起Talk Android吧(第三百五十五回:Gson库解析JSON数组三)

本文介绍了如何在Android中使用Gson库解析复杂的JSON数据,涉及JSON数组和嵌套对象的实例,展示了简化解析过程与Java原生方法对比的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

各位看官们,大家好,上一回中咱们说的是Android中Gson库解析JSON数组的例子,这一回中咱们继续介绍该例子。闲话休提,言归正转。让我们一起Talk Android吧!

示例程序

看官们,我们在本章回中继续介绍如何使用Gson库解析JSON数组,不过JSON数组比较特殊,特殊之处体现为:JSON数组中包含JSON对象,JSON对象中包含JSON数组。这样的组合,我们称其为你中有我,我中有你。下面是具体的示例代码,请大家参考:

String jsonString = 
"{\"data\":{\"count\":5,\"items\":[{\"id\":9,\"title\":\"book\"},{\"id\":32,\"title\":\"pan\"}]},\"return_code\":200,\"return_msg\":\"success\"}";
Gson gsonObj = new Gson();
JavaJsonMixData jsonBeanObj = gsonObj.fromJson(jsonString, JavaJsonMixData.class);

在上面的程序中我们把JSON数据当作JSON对象来解析,因此解析的方法和解析JSON对象的方法一致,这里不再详细列出。这里重点关注一下JavaJsonMixData类,它由GsonFormat生成,具体的定义如下:

public class JavaJsonMixData {

    /**
     * data : {"count":5,"items":[{"id":9,"title":"book"},{"id":32,"title":"pan"}]}
     * return_code : 200
     * return_msg : success
     */

    private DataBean data;
    private int return_code;
    private String return_msg;

    public DataBean getData() {
        return data;
    }

    public void setData(DataBean data) {
        this.data = data;
    }

    public int getReturn_code() {
        return return_code;
    }

    public void setReturn_code(int return_code) {
        this.return_code = return_code;
    }

    public String getReturn_msg() {
        return return_msg;
    }

    public void setReturn_msg(String return_msg) {
        this.return_msg = return_msg;
    }

    public static class DataBean {
        /**
         * count : 5
         * items : [{"id":9,"title":"book"},{"id":32,"title":"pan"}]
         */

        private int count;
        private List<ItemsBean> items;

        public int getCount() {
            return count;
        }

        public void setCount(int count) {
            this.count = count;
        }

        public List<ItemsBean> getItems() {
            return items;
        }

        public void setItems(List<ItemsBean> items) {
            this.items = items;
        }

        public static class ItemsBean {
            /**
             * id : 9
             * title : book
             */

            private int id;
            private String title;

            public int getId() {
                return id;
            }

            public void setId(int id) {
                this.id = id;
            }

            public String getTitle() {
                return title;
            }

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

            @Override
            public String toString() {
                return "ItemsBean{" +
                        "id=" + id +
                        ", title='" + title + '\'' +
                        '}';
            }
        }

        @Override
        public String toString() {
            return "DataBean{" +
                    "count=" + count +
                    ", items=" + items +
                    '}';
        }
    }

    @Override
    public String toString() {
        return "JavaJsonMixData{" +
                "data=" + data +
                ", return_code=" + return_code +
                ", return_msg='" + return_msg + '\'' +
                '}';
    }
}

编译并且运行上面的程序,就可以得到转换后的Java对象我们在这里就不列出程序的运行结果了,希望大家自已动手去实践。

分析总结

回想一下,我们在前面章回中使用Java原生的方法解析这种复杂的JSON数据时步骤很复杂,而且还使用了递归和分层的思想去写程序。而使用Gson库解析这种复杂数据时只使用了fromJson()方法,解析的复杂过程交给了库,不再需要我们自已去处理,是不是简化了解析工作?

看官们,关于Android中Gson库解析JSON数组的例子咱们就介绍到这里,欲知后面还有什么例子,且听下回分解!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

talk_8

真诚赞赏,手有余香

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值