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
RegistrationBody
是 OBJECT 而不是 ARRAY.
你应该使用
data class RegistrationResponse(
val status: Boolean,
val errors: RegistrationBody
)
我正在尝试将 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
RegistrationBody
是 OBJECT 而不是 ARRAY.
你应该使用
data class RegistrationResponse(
val status: Boolean,
val errors: RegistrationBody
)