Ho un fagiolo come questoCome scartare e serializzare la java map in java usando jackson?
class Foo {
private Map<String, Data> dataMap;
private String fooFieldOne;
private String fooFieldTwo;
}
class Data {
private fieldOne;
private fieldTwo;
}
voglio serializzare come JSON come come questo
{
"key1": {
"fieldOne": "some value",
"fieldTwo": "some value"
},
"key2": {
"fieldOne": "some other value",
"fieldTwo": "some other value"
},
"fooFieldOne":"valueone",
"fooFieldTwo":"valuetwo"
}
Ma io sono sempre risultato simile
{
"dataMap": {
"key1": {
"fieldOne": "some value",
"fieldTwo": "some value"
},
"key2": {
"fieldOne": "some other value",
"fieldTwo": "some other value"
}
},
"fooFieldOne":"valueone",
"fooFieldTwo":"valuetwo"
}
Come ignorare strato Datamap in il suddetto json? Sto usando la libreria java jackson per questo.
codice che ho provato è
ObjectMapper mapper = new ObjectMapper();
mapper.writeValueAsString(myFOOObject)
Ciao Bart, grazie mille per la tua risposta dettagliata. Ma ho anche altri campi nel mio fagiolo. Prendi in considerazione che Foo ha altri campi per fooFieldOne, fooFieldTwo e la mappa che ho già. Voglio serializzare tutto come oggetto singolo come {"key1": {"fieldOne": "some value", "fieldTwo": "some value"}, "key2": {"fieldOne": "some other value", " fieldTwo ":" qualche altro valore "}," fooFieldOne ":" valueone "," fooFieldTwo ":" valuetwo "}. Come posso gestire questo? – suren
Ho aggiornato la mia risposta per includere l'annotazione @JsonUnwrapped. – Bart