异常java.util.LinkedHashMap无法强制转换为java.util.List

时间:2016-02-23 07:08:37

标签: java foreach mapper

在解决以下代码时,我得到了下面给出的例外情况。

List<Map<String, Object>> obj = mapper.readValue(result.getBody(), new TypeReference<Map<String,Object>>(){});

for (Map<String, Object> map : obj) {
    for(Map.Entry<String, Object> entry : map.entrySet()){
        System.out.println("Key : "+entry.getKey()+" Value is: "+entry.getValue());
    }
}

Stacktrace java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to java.util.List

2 个答案:

答案 0 :(得分:1)

试一试:您是否尝试将MapObject存储在List.so中,而不是在List中存储Map。

而不是:

List<Map<String, Object>> obj = mapper.readValue(result.getBody(),
new TypeReference<Map<String,Object>>(){});

使用此:

List<Map<String, Object>> obj = mapper.readValue(result.getBody(), 
new TypeReference<List<Map<String,Object>>>(){});

演示示例This Link

答案 1 :(得分:1)

您只需使用地图而不是地图列表。

 Map<String, Object>> object = mapper.readValue(result.getBody(), new TypeReference<Map<String,Object>>(){});
 for(Map.Entry<String, Object> entry : object.entrySet()){
    System.out.println("Key : "+entry.getKey()+" Value is:"+entry.getValue());
}