errorBody() 预期 BEGIN_ARRAY

errorBody() Expected BEGIN_ARRAY

我正在尝试将 errorBody 转换为我的 RegistrationResponse,但它总是抛出 Expected BEGIN_ARRAY but was BEGIN_OBJECT

RegistrationResponse

data class RegistrationResponse(
    val status: Boolean,
    val errors: List<RegistrationBody>
)

RegistrationBody

data class RegistrationBody(
    val lastname: String,
    val firstname: String,
    val middlename: String
)

我的转换器

if (it is HttpException) {
    if (it.code() == 400) {
        // Bad Request
        val errorConverter: Converter<ResponseBody, RegistrationResponse>? = retro?.responseBodyConverter(RegistrationResponse::class.java, arrayOfNulls<Annotation>(0))
        Log.i("TAG", "${errorConverter?.convert(it.response().errorBody())}")
    }
}

我的预期输出

{                       
    status: false,                  
    errors: {                   
        lastName: "The last name is required.",             
        firstName: "The first name is required.",               
        middleName: "The middle name is required.",             
    }                   
}

我是否遗漏了代码中的某些内容?

我也试试

val errorConverter: Converter<ResponseBody, List<RegistrationResponse>>? = retro?.responseBodyConverter(RegistrationResponse::class.java, arrayOfNulls<Annotation>(0))

仍然是错误Expected BEGIN_ARRAY but was BEGIN_OBJECT

Expected BEGIN_ARRAY but was BEGIN_OBJECT

RegistrationBodyOBJECT 而不是 ARRAY.

你应该使用

    data class RegistrationResponse(
    val status: Boolean,
    val errors: RegistrationBody
)