Questo sembra che dovrebbe essere un problema abbastanza risolto/ben indirizzato, ma non sto trovando molte indicazioni su di esso - sperando che questo non sia un dupe.Deserializzazione del campo da oggetti nidificati all'interno della risposta JSON con Jackson
mio scenario è fondamentalmente che sto consumando impaginati risposte JSON che simile a questa:
{
"objects": [...],
"meta": {
"total": 5000,
"page": 1,
"result_pages": 20,
"links": {
"prev": null,
"next": "/api/v3/objects/somequery?page=2"
}
}
}
Ovviamente questo è semplificato, ma si spera che ottiene il punto attraverso.
Tutto quello che mi interessa davvero sono i campi objects
e next
, ma sembra che dovrò creare un'intera gerarchia di DTO per deserializzare con successo i campi nidificati.
C'è un'annotazione di Jackson che mi consente di saltare tutto questo? In caso contrario, esiste una serie di best practice per fare ciò che non coinvolge una serie di classi e file per lo più vuoti?
Sarebbe forse più facile utilizzare solo il sopra citato 'JsonDeserializer' con un'annotazione su un La proprietà 'String next' e fa finta che sia piatta, allo stesso livello di root di' "objects" '? –
@ap, puoi usare questa annotazione in modo diverso, anche nella parte superiore della classe, qui la documentazione, https://fasterxml.github.io/jackson-databind/javadoc/2.3.0/com/fasterxml/jackson/databind /annotation/JsonDeserialize.html – SerCe
Per qualsiasi futuro quest, dovrei menzionare che la risposta sopra usa il metodo '.asText()', che sembra essere sbagliato. Ho finito con l'uso di '.textValue()' dopo alcuni tentativi e funziona come un incantesimo. –