Android 如何使用Gson解析嵌套Json字符串

Android 如何使用GSON解析嵌套Json

Overview

如何使用GSON解析我们的嵌套Json?? 这个问题困扰了我很久,后来我学习了https://www.shycoder.cn/的WanAndroid 了解了皮毛,但是因为之学习了皮毛。让我吃了大亏。所以今天我们就来学习一下吧。

如何使用Gson解析嵌套Json?

啥叫嵌套Json就是类似与这个样子的。

image-20200420092607065

那么我么们有该如何去解析他呢?以前我使用的是JSONObject 和 JSONArray去循环解析。但是后来了解了Gson后就抛弃他了。但是Gson我也只是学习了一点皮毛,知道这次遇到大亏,才打算好好学习一下。

啥是Gson

GSON弥补了JSON的许多不足的地方,在实际应用中更加适用于Java开发。在这里,我们主要讲解的是利用GSON来操作java对象和json数据之间的相互转换,包括了常见的对象序列化和反序列化的知识。

如何优雅的使用Gson解析我们的嵌套Json

我们以下面的数据作为数据源来解析一下:

[
    {
        "FoodId": "1",
        "Category": "Package",
        "FoodName": "FastFood",
        "Price": "59",
        "SaleAmount": "500",
        "ThumbUp": "500",
        "Description": "Description Description ",
        "Photos": [
            {
                "Photo": "Base64String"
            },
            {
                "Photo": "Base64String"
            },
            {
                "Photo": "Base64String"
            }
        ]
    }
]

这个是我们获取食物数据和食物图片的。可以看到一个食物下面会出现多个图片。又是有好多张图片,所以Photos下又是一个Json数组。
那么我么需要如何解析呢?
先看看Gson是如何解析普通的Json字符串的:

Gson gson=new Gson();
List<TestEntity> testList=gson.fromJson(testJsonStr,TestEntity.Class);

这个就是我们解析普通的Json使用的方法。但是上面的嵌套Json该如何解析呢?

看看Json的结构是啥样的?

image-20200420094013781

大致你可以把它分为两部分。

如何根据我们的Json结构设计我们的Entity

image-20200420094330815

扫描二维码关注公众号,回复: 10987073 查看本文章

这个就是我根据我们的Json字符串写的实体类了。
红色方框里面(不包括绿色的)他就是我们食物的信息了,就是对应这Json字符串的红色方框里面的数据。然后看看我们你的绿色方框的,因为一个食物有多个图片所以我使用List来存储。但是为啥Photo的类型是String类型?因为这里的图片是Base64存储嘚。这样Entity就完成了。

看看如何解析

  • 先是获取到我们的数据。
    image-20200420095029062

  • 然后我们需要解析他。这里就和普通的Json一眼解析就可以了。非常的简单。

  • 通过适配器绑定数据
    image-20200420095143117

  • 这里我是用的是解析BaseAdaoter绑定到ListView

这样我们的解析Json就完成了。

猜你喜欢

转载自www.cnblogs.com/cao-1/p/12739797.html