J'ai un JSON avec des clés en double comme indiqué ci-dessous.Représente JSON avec des clés en double en tant que Multimap
{
"name": "Test",
"attributes": [{
"attributeName": "One",
"attributeName": "Two",
"attributeName": "Three"
}]
}
Quand je transforme à un Map<String, Object>
en utilisant Jackson, il est transformé comme indiqué ci-dessous.
{name = test, attributs = [{attributeName = Trois}]}
La valeur de la dernière occurrence du nom d'attribut est considéré. Existe-t-il un moyen de dire à Jackson de le représenter comme un Multimap à la place? Je peux utiliser n'importe quelle implémentation de Multimap. Mon code actuel est comme indiqué ci-dessous:
import java.util.HashMap;
import java.util.Map;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
public class TestJSON {
public static void main(String[] args) throws Exception{
ObjectMapper mapper = new ObjectMapper();
String json = "{\"name\": \"Test\",\"attributes\": [{\"attributeName\": \"One\",\"attributeName\": \"Two\",\"attributeName\": \"Three\"}]}";
Map<String, Object> map = new HashMap<>();
map = mapper.readValue(json, new TypeReference<Map<String, Object>>(){});
System.out.println(map);
}
}
Que diriez-vous de corriger le JSON et de le rendre valide? Voir https://stackoverflow.com/questions/5306741/do-json-keys-need-to-be-unique –