Я использую API, который возвращает данные в виде массива, например, эту строку JSON (назовем это «задачами»)
[
{"id": "5d9478a643a7520041b367c7",
"name": "Task 1",
"value": 2
},
{"id": "5d9478a243a7520041b367c6",
"name": "Task 2",
"value": 10
},
]
Я хочу проанализировать этот ответ в списке. Итак, я создал соответствующий класс данных с сгенерированным адаптером
@JsonClass(generateAdapter = true)
data class Task(
var id: String,
var name: String,
var value: Int
)
Мой модифицированный сервис выглядит следующим образом
private val moshi = Moshi.Builder()
.add(KotlinJsonAdapterFactory())
.build()
private val retrofit = Retrofit.Builder()
.addConverterFactory(MoshiConverterFactory.create(moshi))
.baseUrl(BASE_URL)
.build()
interface NetworkService {
@GET("tasks")
suspend fun tasks(): Response<List<Task>>
}
Но я хочу использовать тип контейнера, например:
data class TaskList(val tasks: List<Task>)
как результат ответа сети. Это возможно без создания специального адаптера, или мне нужно будет создать собственный адаптер и передать его moshi builder?