用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

任何线索? 谢谢