【发布时间】:2018-10-30 13:58:58
【问题描述】:
我正在尝试在 Kotlin 中使用 Gson 反序列化以下 JSON。
{
"things": [
{
"name": "Thing1"
},
{
"name": "Thing2"
}
}
}
现在我有 2 个要反序列化的类;
- ThingWrapper - 有一个属性“事物”,它是一个列表
- 事物 - 具有名称属性
在我的服务中,我只是从“事物”返回List<Thing>,并且从不暴露 ThingWrapper。
fun getThings(): List<Thing> {
return Gson().fromJson(json, ThingWrapper::class.java).things
}
我的问题是我可以使用 Gson 以一种可以完全避免需要 ThingWrapper 类的方式反序列化吗?
提前致谢, 约翰
【问题讨论】:
-
如果你使用 Retrofit & Gson 来解析这个 JSON,移除 ThingWrapper.class 并传递 List of things,所以它只会解析 things
-
@AkshayKatariya 我目前没有使用 Retrofit,我有意尝试直接在 Gson 中解决这个问题。只是为了确认您是说在 Retrofit 中您可以预先解析响应以仅提取数组吗?
-
是的,您可以消除不需要的参数,它只会解析您 POJO 中存在的那些参数,我认为您也可以尝试使用 Gson
-
谢谢,当我开始使用 Retrofit 时,我会记住这一点。