用JSON解析json到Java Pojos中缺少一般信息
当从Kotlin调用Java类型和Gson时,我遇到了一个问题
Java POJO代表API响应,这是错误的
public class ApiResponse { @SerializedName("errors") public List<ApiResponseError> errors; } public class ApiResponseError { @SerializedName("code") public Integer code; @SerializedName("message") public String message; }
线上的http响应体
{ "errors": [ { "code": 10002, "message": "Not found" } ] }
使用Gson将该响应解析为对象的kotlin代码。
val errorResponse = Gson().fromJson<ApiResponse>(jsonBody, ApiResponse::class.java)
jsonBody
是前一个代码片段中http响应正文的字符串表示形式。
实例化对象的调试器视图:
问题是ArrayList
应该包含一个ApiResponseError
对象而不是一个LinkedTreeMap
。
我尝试了没有在List<ApiResponseError> errors
列表泛型类型相同的代码,结果是相同的,所以我猜测通用信息正在丢失某处,Gson默认为LinkedTreeMap
。
任何线索? 谢谢