【发布时间】:2013-10-28 02:33:25
【问题描述】:
我正在尝试访问 MyModelClass 上的 getter 方法,但我的代码返回 List<LinkedHashMap> 而不是 List<MyModelClass>。这是我的代码。
List<MyModelClass> myModelClass=(List<MyModelClass>) restTemplate.postForObject(url,mvm,List.class);
System.out.println("Response= " + myModelClass);
我尝试打印响应并且得到了我期望的 JSON 响应。 但是当我尝试运行这段代码时。
System.out.println("Response= " + myModelClass.get(0).getMessage());
它会产生这个错误。
java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to com.XXX.XXX.MyModelClass
这是不匹配的。有人可以帮我摆脱这个错误吗?谢谢。
我的模型类
public class MyModelClass{
/**
*
*/
@JsonProperty("id")
public String id;
@JsonProperty("type")
public String type;
@JsonProperty("user")
public String user;
@JsonProperty("message")
public String message;
//getters
错误
MyModelClass[] myModelClass= restTemplate.postForObject(url,mvm, myModelClass[].class);
org.springframework.http.converter.HttpMessageNotReadableException:无法读取 JSON:无法从 START_OBJECT 令牌中反序列化 java.util.ArrayList 的实例
JSON 响应结构
[{"key1":"value1","key2":"value2","parameters":{"key1":"value1","key2":"value2","key3":"value3","key4":"value4","key5":"value5"}},
{"key12":"value12","key22":"value22","parameters":{"key12":"value12","key22":"value22","key32":"value32","key42":"value42","key52":"value52"}}]
如果对如何在 RestTemplate 中映射这种 JSON 响应有任何建议,那将有很大帮助。谢谢
【问题讨论】:
-
嗨,Erick,您找到解决问题的方法了吗?我也有几乎同样的问题
-
这个答案帮助我解决了这个问题。 stackoverflow.com/a/15453159/822436
-
有一些方法可以将 List
转换为 List 。但是为什么当 restTemplate 重新运行 List 并将其分配给 myModelClass[] 时它不会抛出任何异常?它们是不同的类型。为什么?
标签: java android spring classcastexception resttemplate