动态JSON响应解析到GSON模型-具有动态数据类型的动态键

gblwokeq  于 2023-10-18  发布在  其他
关注(0)|答案(1)|浏览(129)

我有一个JSON响应结构如下:

{
    "status": true,
    "data": {
        "Owner": {
            "owner_name": "name",
            "title": "Standup meeting",
            "description": "..."
            // Other fields
        },
        "Moderator": [
            {
                "owner_name": "name",
                "title": "Standup meeting",
                "description": "..."
                // Other fields
            }
            // Potentially more objects in the array
        ]
        // Potentially more dynamic keys with objects or arrays of objects
    }
}

在这个JSON响应中,有各种动态键,如“Owner”和“Moderator”,每个键都包含一个JSON对象或一个JSON对象数组。我需要创建一个GSON数据类来解析这个动态JSON响应。
我目前被以下数据类卡住了,不确定它是否正确:

data class MineMeetResponse(
    @SerializedName("status")
    val status: Boolean,
    @SerializedName("data")
    val data: HashMap<String, ...>
)

我不确定上面的数据模型是否正确。你能帮助我为这个动态JSON响应创建一个GSON模型吗?
另外,我非常感谢关于为这个数据模型编写单元测试用例的指导。您在创建数据模型和建议单元测试策略方面的帮助将非常有帮助。

sigwle7e

sigwle7e1#

如果在Data标签中定义所有对象类型,如下所示,并使它们可为空。

data class MineMeetResponse (
        val status: Boolean,
        val data: Data
        )
    
data class Data (
            val owner: Owner? = null,
            val moderator: List<Owner>? = null,
            // more types here...
        )
        
data class Owner (
            val ownerName: String,
            val title: String,
            val description: String,
            // Other fields as nullable...
            // val foo: T? = null 
        )

相关问题