Moshi и дооснащение2: анализ содержимого элемента root - PullRequest
0 голосов
/ 21 января 2020

С сегодняшнего дня я получил json ответов, таких как:

{
   "status" : "Ok",
   "otherField" : "Somevalues" 
}

Что я сопоставляю с классами, такими как

data class MyResponse(
    val status : String,
    val otherField : String
)

Теперь структура ответа изменилась примерно так:

{
   "rootElement" : {
       "status" : "Ok",
       "otherField" : "Somevalues" 
    }
}

Есть ли способ заставить Moshi непосредственно анализировать содержимое "rootElement" без изменения структуры "MyResponse"?

1 Ответ

0 голосов
/ 22 января 2020

Есть ли способ заставить Moshi анализировать непосредственно содержимое "rootElement" без изменения структуры "MyResponse"?

Если я правильно понял ваше требование, да, вы можете проанализировать содержимое rootElement без изменения MyResponse класса данных. Создайте еще один класс данных Kotlin, как показано ниже

data class ResponseRoot (
    val rootElement : MyResponse
)

И используйте этот тип возврата класса данных ResponseRoot для ответа Retrofit вместо MyResponse class.

В вашем интерфейсе API просто внесите изменения

@GET("url/here/")
fun fooBar(/* paramters if there any */): Call<ResponseRoot>
...