是否可以将其转换为
{
"news": [
{
"nid": 1,
"type": "test1",
},
{
"nid": 2,
"type": "test2",
}
]
}
为此,当我收到Retrofit的结果吗?
{
"nid": 1,
"type": "test1",
},
{
"nid": 2,
"type": "test2",
}
实际上,在我的模型中,我有一个 NewsList 对象,其中包含一个 News 列表(其内部值为:nid,类型)。
Retrofit查询看起来像这样:
@GET("test/test.json")
suspend fun getListNews(): Response<Newslist>
一切正常,但是现在我需要使用Room将数据保存在数据库中,如果Retrofit查询像这样,将更加容易:
@GET("test/test.json")
suspend fun getListNews(): Response<List<News>
实现此目标的最佳方法是什么?
答案 0 :(得分:0)
最好的方法是让后端服务器返回规范的json数据。
如果无法实现,则可以通过addConverterFactory方法自定义converterFactor,此方法与自定义converterFactor中的此数据格式兼容。
答案 1 :(得分:0)
最好的方法是使用RXJava或Kotlin的协程。
在RXJava中,您可以使用地图运算符将响应对象转换为对象列表。
请参考下面的链接以了解将RXJava与改造和转换结果一起使用的想法:
答案 2 :(得分:0)
首先,您必须为数据提供者提供一层以供使用者使用(活动,VM,片段等)。 在此层中,您具有用例来定义从Cloud(Retrofit)或从Local Storage(Room)的数据收集。更多信息,我有示例here