web-dev-qa-db-fra.com

L'exception Java.util.LinkedHashMap ne peut pas être convertie en Java.util.List

En travaillant sur le code suivant, j'ai l'exception ci-dessous. 

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

7
Vamsi

Essayez ceci: Essayez-vous de stocker MapObject dans List.so au lieu de Map Store dans List.

au lieu de:

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

Utilisez ceci :

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

Pour exemple de démonstration Ce lien

1
Benjamin

Vous devez utiliser uniquement une carte au lieu d'une liste de cartes.

 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());
}
1
Lilia