【发布时间】:2021-01-18 11:14:25
【问题描述】:
我正在尝试序列化下面的 json 响应,但我不确定该怎么做。
这是我的后端返回的 Json:
[
{
"title": "Dummy section, should not be seen",
"type": "dummy_test",
"metadata": []
},
{
"title": "Title1",
"type": "categories_products",
"metadata": [
{
"id": "1272"
}
]
},
{
"title": "Title2",
"type": "categories_products",
"metadata": [
{
"id": "996"
}
]
}
]
这是我的 ExploreItem 类:
data class ExploreItem(
@SerializedName("metadata") val metadata: List<Metadata> = listOf(),
@SerializedName("title") val title: String = "",
@SerializedName("type") val type: String = ""
) {
enum class ExploreItemType(val value: String) {
@SerializedName("unknown")
UNKNOWN("unknown"),
@SerializedName("other_companies")
OTHER_COMPANIES("other_companies"),
@SerializedName("categories_products")
CATEGORIES_PRODUCTS("categories_products"),
@SerializedName("popular_categories")
POPULAR_CATEGORIES("popular_categories")
}
}
data class Metadata(
@SerializedName("id") val id: String = ""
)
现在我正在尝试像这样在存储库中对其进行序列化:
Serializer.defaultJsonParser.fromJson(response.body!!.string(),ExploreItem::class.java )
但它不起作用,因为它需要一个 ExploreItem 列表。如何重写序列化器表达式以将其解析为列表?
【问题讨论】:
-
你的堆栈跟踪是什么?
-
类型不匹配。必需:列表
找到:ExploreItem!这就是序列化程序行显示的错误