Deserialisieren json-array von java-Objekt mit Jackson
gegeben, die folgende json:
{ "response": {
"totalProcessingTime": "271.0",
"resultSets": {
"products": {
"firstHit": "1",
"lastHit": "10",
"totalHits": "77",
"hits": [
{
"number": "1",
"dmsubcategory": "TV, lyd og bilde",
"collection": "tilbud",
"title": "<b>TV</b> Panasonic 47 TX-LU 7ET5Y"
},
{
"number": "2",
"dmsubcategory": "TV, lyd og bilde",
"collection": "tilbud",
"title": "<b>TV</b> Panasonic 47 TX-LU 7ET5Y"
},
{
"number": "3",
"dmsubcategory": "TV, lyd og bilde",
"collection": "tilbud",
"title": "<b>TV</b> Panasonic 47 TX-LU 7ET5Y"
}
]
}
}
}
}
Ich bin mit dem folgenden code zum aufrufen von jackson:
ObjectMapper mapper = new ObjectMapper();
SearchResult searchResult = mapper.readValue(new URL(jsonUrl + queryUrl), SearchResult.class);
Habe ich ganerated POJOs für die ganze hiearchy, wo die Produkte der Klasse sieht wie folgt aus:
public class Products {
public List<Hits> hits;
public String totalHits;
@JsonAnySetter
public void handleUnknown(String key, Object value) {
//do something: put to a Map; log a warning, whatever
}
public List<Hits> getHits() {
return hits;
}
public void setHits(List<Hits> hits) {
this.hits = hits;
}
public String getTotalHits() {
return totalHits;
}
public void setTotalHits(String totalHits) {
this.totalHits = totalHits;
}
}
- und das trifft Klasse:
public class Hits {
public String number;
public String title;
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
@JsonAnySetter
public void handleUnknown(String key, Object value) {
//do something: put to a Map; log a warning, whatever
}
}
Alle anderen Eigenschaften zugeordnet sind richtig, aber nicht die Liste mit Treffern. Es ist alles leer. Wie kann ich diese Karte, es richtig zu machen?
Dank!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihr Modell ist nicht kompatibel.
Um zu sehen, was Los ist falsch, vielleicht ist es eine gute Idee, einige toStrings und man konnte einfach sehen, wo die Zuordnung nicht.
Haben Sie ein Objekt muss eine Eigenschaft Antwort, das muss halten eine Eigenschaft Ergebnismengen, die Bedürfnisse zu halten, eine Eigenschaft, Produkte, Bedürfnisse zu halten hat.
Ich umgesetzt so:
Bitte testen Sie folgende Implementierung:
nachdem alles, was Sie tun können, so etwas wie:
Der code sieht gut aus. Kann der Fehler in der json-Antwort
Den backquotes nach 47 und vor TX, könnte problematisch sein. Bitte prüfen Sie, ob Sie können analysieren diese Antwort.