Jackson Deserialisieren hash map
Habe ich folgenden JSON:
"propertyName": "{"1":[{"1":"value1","2":"value2","3":false}]}"
die erste Eigenschaft, die die Anzahl der Elemente im array folgende, die eine Karte von Eigenschaften.
Was ist der beste Weg, um Deserialisieren diese mit Jackson
wenn ich will, zu füllen mit einem Klasse halten diese Werte:
class MyHolder
{
name = "value1";
age = "value2";
female = false;
}
zum Beispiel.
- "Beste" in welcher Hinsicht?
- mögliche Duplikate von Jackson: Deserialisierung von Landkarte
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre JSON ist nicht gültig. Lassen Sie uns davon ausgehen, dass JSON sieht wie folgt aus:
Die einfachste Möglichkeit ist das erstellen POJO-Klassen, die passt zu deinem JSON. Zum Beispiel:
Nun können wir leicht Deserialisieren es auf diese Weise:
Oben genannten Programm druckt:
Wenn wir nicht wollen, um zu sehen
Map
in unserem POJO Klasse, die wir haben, schreiben Sie benutzerdefinierte Konverter:Ihre POJO-Klassen könnte wie folgt Aussehen:
Wie Sie sehen können, im zweiten Beispiel benutzen wir
@JsonDeserialize
annotation und wir haben nicht zu verwenden@JsonProperty
.Deserialisieren Liste/Sammlung von konkreten Werten (eher dann die
LinkedHashMap
erhalten Sie standardmäßig), müssen Sie die pass-geben Sie Informationen zu Jackson:Den anderen Weg, das gleiche zu tun ist:
Hoffe, das hilft.
Map<String, JsonBean> myMap = mapper.readValue(json, new TypeReference<Map<String, JsonBean>>(){})