使用Moshi处理可能是列表或自定义对象的JSON响应

时间:2019-07-23 06:48:04

标签: json kotlin moshi

我是Moshi的新手,正在寻找一种方法来设置带有匕首2的Moshi适配器,以根据JSON响应自动创建自定义对象或列表。

API可以返回以下两个响应之一:

[{
    "item_type": "xyz",
    "items": [{
            "name": "foo",
            "age": 22
        },
        {
            "name": "bar",
            "age": 32
        }
    ]
}]

[{
    "name": "foo",
    "age": 22
},
{
    "name": "bar",
    "age": 32
}]

我查看了Moshi Determine if JSON is array or single object供参考,但在我的用例中,整个响应JSON对象具有不同的结构。另外,由于我正在使用dagger2进行依赖项注入,因此我不确定如何以及在何处添加适配器,因为我的Network模块(提供Moshi)是相当通用的,因此我不需要此自定义适配器用于其他API。

@Provides
@Singleton
fun provideMoshi(): Moshi = Moshi.Builder()
        .add(Date::class.java, Rfc3339DateJsonAdapter().nullSafe())
        .build() 

0 个答案:

没有答案