使用Kotlin中的Gson将json解析为Java POJO缺少通用信息
当从Kotlin调用Java类型和Gson时,我遇到了一个问题 JavaPOJO表示一个API响应及其错误使用Kotlin中的Gson将json解析为Java POJO缺少通用信息,java,gson,kotlin,Java,Gson,Kotlin,当从Kotlin调用Java类型和Gson时,我遇到了一个问题 JavaPOJO表示一个API响应及其错误 public class ApiResponse { @SerializedName("errors") public List<ApiResponseError> errors; } public class ApiResponseError { @SerializedName("code") public Integer code; @Seri
public class ApiResponse {
@SerializedName("errors")
public List<ApiResponseError> errors;
}
public class ApiResponseError {
@SerializedName("code")
public Integer code;
@SerializedName("message")
public String message;
}
kotlin代码使用Gson将响应解析为对象
val errorResponse = Gson().fromJson<ApiResponse>(jsonBody, ApiResponse::class.java)
val errorResponse=Gson().fromJson
问题是ArrayList
应该包含ApiResponseError
对象,而不是LinkedTreeMap
我在列表错误
列表中尝试了没有泛型类型的相同代码,结果是相同的,因此我猜测泛型信息在某个地方丢失了,而Gson默认为LinkedTreeMap
有什么线索吗?谢谢代码在我的电脑上工作。你说的“工作”是什么意思?ArrayList
是否包含类型为ApiResponseError
或LinkedTreeMap
的对象?是否按照您的预期工作。包含ApiResponseError类型的对象。我得到与@aristotll相同的结果。我的gson版本是2.8.1
。您是否为Gson.fromJson(String)
编写了自己的扩展函数?我删除了未找到“
后的逗号,但它似乎没有关联。
val errorResponse = Gson().fromJson<ApiResponse>(jsonBody, ApiResponse::class.java)