当前位置: 首页 > 知识库问答 >
问题:

如何利用gson序列化对的ArrayList

史逸春
2023-03-14

我正在尝试反序列化类型为

arraylist >

每当我尝试执行new Gson().fromjson(json,type);

其中类型是使用TypeToken从TypeToken获取的

new TypeToken<ArrayList<Pair<OuterData, ArrayList<InnerData>>>>(){}.getType()

我认为使用类型会解决我的问题,因为最初我不想使用它,但它没有。感谢任何帮助。

data class InnerData(val name: String,
                     val category: String,
                     val categoryIcon: Int,
                     val description: String,
                     val rules: String,
                     val time: String,
                     val date: String,
                     val venue: String,
                     val notifyState: Boolean,
                     val notifyTime: Int,
                     val favouriteState: Boolean)

data class OuterData(val heading: String, val color: Int)
[
{
    "first": {
        "color": -65281,
        "heading": "October 01"
    },
    "second": [
        {
            "category": "",
            "categoryIcon": 17301533,
            "date": "",
            "description": "sfd",
            "favouriteState": false,
            "name": "sdfds",
            "notifyState": false,
            "notifyTime": 0,
            "rules": "",
            "time": "",
            "venue": ""
        }
    ]
},
{
    "first": {
        "color": -65281,
        "heading": "November 01"
    },
    "second": [
        {
            "category": "",
            "categoryIcon": 17301533,
            "date": "djfkd",
            "description": "klddjflk",
            "favouriteState": false,
            "name": "jkl",
            "notifyState": false,
            "notifyTime": 0,
            "rules": "",
            "time": "sdkjfk",
            "venue": "ldkfjf"
        }
    ]
},
{
    "first": {
        "color": -16175867,
        "heading": "October 31"
    },
    "second": [
        {
            "category": "Event Category",
            "categoryIcon": 17301533,
            "date": "31-10-2017",
            "description": "Event Description",
            "favouriteState": false,
            "name": "Event name",
            "notifyState": false,
            "notifyTime": 0,
            "rules": "Events Rules",
            "time": "13:55",
            "venue": "Event Venue"
        },
        {
            "category": "",
            "categoryIcon": 17301533,
            "date": "",
            "description": "",
            "favouriteState": false,
            "name": "dsf",
            "notifyState": false,
            "notifyTime": 0,
            "rules": "",
            "time": "",
            "venue": ""
        },
        {
            "category": "",
            "categoryIcon": 17301533,
            "date": "",
            "description": "",
            "favouriteState": false,
            "name": "",
            "notifyState": false,
            "notifyTime": 0,
            "rules": "",
            "time": "",
            "venue": ""
        },
        {
            "category": "",
            "categoryIcon": 17301533,
            "date": "",
            "description": "",
            "favouriteState": false,
            "name": "",
            "notifyState": false,
            "notifyTime": 0,
            "rules": "",
            "time": "",
            "venue": ""
        },
        {
            "category": "",
            "categoryIcon": 17301533,
            "date": "",
            "description": "",
            "favouriteState": false,
            "name": "",
            "notifyState": false,
            "notifyTime": 0,
            "rules": "",
            "time": "",
            "venue": ""
        },
        {
            "category": "",
            "categoryIcon": 17301533,
            "date": "",
            "description": "",
            "favouriteState": false,
            "name": "",
            "notifyState": false,
            "notifyTime": 0,
            "rules": "",
            "time": "",
            "venue": ""
        },
        {
            "category": "",
            "categoryIcon": 17301533,
            "date": "",
            "description": "",
            "favouriteState": false,
            "name": "",
            "notifyState": false,
            "notifyTime": 0,
            "rules": "",
            "time": "",
            "venue": ""
        },
        {
            "category": "",
            "categoryIcon": 17301533,
            "date": "",
            "description": "",
            "favouriteState": false,
            "name": "",
            "notifyState": false,
            "notifyTime": 0,
            "rules": "",
            "time": "",
            "venue": ""
        },
        {
            "category": "",
            "categoryIcon": 17301533,
            "date": "",
            "description": "",
            "favouriteState": false,
            "name": "",
            "notifyState": false,
            "notifyTime": 0,
            "rules": "",
            "time": "",
            "venue": ""
        }
    ]
}]

共有1个答案

曹智
2023-03-14

我搞定了。问题是我使用的是Kotlin的Pair类。当我定义了我自己的简单Pair类时,一切都正确地进行了。

 类似资料:
  • 问题内容: 我想使用套接字(在开发远程PC时)从Android客户端向Java服务器发送2个对象。 当然我知道上面的方法是行不通的,因为它可以提供。所以现在我想知道如何使用Gson库对对象进行序列化和反序列化。提前致谢。 问题答案: gson可以在任何平台上与Java一起使用-不仅限于Android。 使用gson序列化单个对象: 使用gson反序列化为单个对象。 从示例中可以看到,gson非常神

  • 主要内容:示例我们将一个Java对象序列化为一个Json文件,然后读取该Json文件以获取对象。 在这个例子中,创建一个类。 然后将对象列化后存储在文件中,该文件将具有对象的json表示形式。 示例 在中创建一个名为的Java类文件,参考以下代码 - 执行上面示例代码,得到以下结果 -

  • 我想将这个对象序列化为JSON字符串 并得到如下结果: 我试着用 但不是这样,我得到了: 个性化序列化: 欢迎提出任何建议 谢谢,马里奥

  • 我使用下面的方法(来自spark-java framework的方法)从DB返回的数据如下: 从DB返回的数据: ClasStypeAdapterFactory: 类类型适配器: 这里我使用的是,它从spark-java ResponseTransformer接口实现了

  • 问题内容: 我在尝试序列化包含 即使我写了: 并应用: 我仍然无法序列化此类: Stacktrace :(在pastebin上完整) 有什么办法吗? 问题答案: 您的问题是那是一个。假设您使用它将在Windows PC上创建类似的实例。现在,您必须告诉GSON如何反序列化此类型: 您可以使用的另一种方法是: typeHierarchyAdapter的目的是在您希望为类型的所有子类型使用相同的表示形

  • 问题内容: 我想使用套接字(在开发远程PC时)从Android客户端向Java服务器发送2个对象。 当然我知道上面的方法是行不通的,因为它可以提供。因此,现在我想知道如何使用Gson库对对象进行序列化和反序列化。提前致谢。 问题答案: gson可以在任何平台上与Java一起使用-不仅限于Android。 使用gson序列化单个对象: 使用gson反序列化为单个对象。 从示例中可以看到,gson非常