Ich habe ein JSON mit doppelten Schlüsseln wie unten gezeigt.Repräsentieren Sie JSON mit doppelten Schlüsseln als Multimap
{
"name": "Test",
"attributes": [{
"attributeName": "One",
"attributeName": "Two",
"attributeName": "Three"
}]
}
Als ich es zu einem Map<String, Object>
Jackson-Transformation, ist es, wie unten gezeigt umgewandelt.
{name = Test, Attribute = [{attribute = Drei}]}
Der Wert des letzten Vorkommens von Attributnamen berücksichtigt. Gibt es eine Möglichkeit, Jackson zu erklären, es stattdessen als Multimap darzustellen? Ich bin in Ordnung, jede Implementierung von Multimap zu verwenden. Meine aktuellen Code ist wie unten dargestellt:
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);
}
}
Wie wäre es, den JSON zu reparieren und stattdessen gültig zu machen? Siehe https://stackoverflow.com/questions/5306741/do-json-keys-need-to-be-unique –