JsonArray到Kotlin数据类使用Retrofit(期望的BEGIN_OBJECT,但是BEGIN_ARRAY)

我正在使用Retrofit2

fun create(): MyApiService { return Retrofit.Builder() .addCallAdapterFactory(RxJava2CallAdapterFactory.create()) .addConverterFactory(GsonConverterFactory.create()) .baseUrl(BASE_URL) .build() .create(MyApiService::class.java) } 

隐式转换下面的Json

 [{ "id": 1, "name": "John", }, { "id": 2, "name": "Mary", } ] 

转换成Kotlin数据类

 object Model { data class Person(val id: Int, val name: String) } 

但是,我正在尝试使用Expected BEGIN_OBJECT but was BEGIN_ARRAY错误

 @GET("/people.json") fun getPeople() : Observable<Model.Person> 

我试着改变Model对象从列表扩展(正如你通常在使用Java的改造1)或创建人的List字段,但无济于事。

我发现我不必更改数据对象。

解决方法是简单地告诉调用方法来检索模型List ,而不是模型本身。

 @GET("/people.json") fun getPeople() : Observable<List<Model.Person>> 

经典的例子是如何用简单的方法解决一个难题。 做得好, Retrofit