尝试执行以下代码时出错:
fun parseErrorCodes(response: Response<*>): List<String> {
val errorCodes: MutableList<String> = ArrayList()
try {
val listType = object : TypeToken<ArrayList<ApiError>>() {
}.type
val errorJson = JsonParser().parse(response.errorBody().string()).asJsonObject.get("response")
if (errorJson.isJsonArray) {
val errors = Gson().fromJson<List<ApiError>>(errorJson, listType)
for (apiError in errors) {
errorCodes.add(apiError.errorCode)
}
return errorCodes
} else {
errorCodes.add(Gson().fromJson(errorJson, ApiError::class.java).errorCode)
return errorCodes
}
} catch (e: Exception) {
e.printStackTrace()
}
return errorCodes
}
错误发生在以下行: val errorJson = JsonParser().parse(response.errorBody().string()).asJsonObject.get("response")
有人可以帮我解决这个错误吗?
答案 0 :(得分:3)
我找到了问题的答案。问题是我试图解析API的响应两次,第一次显示错误消息然后获取错误代码来处理它们以供将来验证。
这是我的代码的外观:
ErrorHandler.showError(activity, response)
val errorCodes = ErrorHandler.parseErrorCodes(response)
handleErrorCodes(errorCodes)
因此,两个方法showError和parseErrorCodes都在使用API响应。