Mam fasoli jak tenJak odwijać i serializować mapę java w języku Java za pomocą jackson?
class Foo {
private Map<String, Data> dataMap;
private String fooFieldOne;
private String fooFieldTwo;
}
class Data {
private fieldOne;
private fieldTwo;
}
chcę serializacji jako JSON, jak się ten
{
"key1": {
"fieldOne": "some value",
"fieldTwo": "some value"
},
"key2": {
"fieldOne": "some other value",
"fieldTwo": "some other value"
},
"fooFieldOne":"valueone",
"fooFieldTwo":"valuetwo"
}
ale otrzymuję wynik jak
{
"dataMap": {
"key1": {
"fieldOne": "some value",
"fieldTwo": "some value"
},
"key2": {
"fieldOne": "some other value",
"fieldTwo": "some other value"
}
},
"fooFieldOne":"valueone",
"fooFieldTwo":"valuetwo"
}
jak ignorować warstwę Datamap w powyższy json? Używam do tego biblioteki java jackson.
Kod próbowałem to
ObjectMapper mapper = new ObjectMapper();
mapper.writeValueAsString(myFOOObject)
Witaj Bart, Dziękuję bardzo za szczegółową odpowiedź. Ale mam też inne pola w mojej fasoli. Rozważmy, że Foo ma inne pola fooFieldOne, fooFieldTwo wraz z już posiadaną mapą. Chcę serializować wszystko jako pojedynczy obiekt, taki jak {"klucz1": {"fieldOne": "pewna wartość", "fieldTwo": "pewna wartość"}, "key2": {"fieldOne": "inna wartość", " fieldTwo ":" inna wartość "}," fooFieldOne ":" valueone "," fooFieldTwo ":" valuetwo "}. Jak sobie z tym poradzić? – suren
Zaktualizowałem odpowiedź, aby dołączyć adnotację @JsonUnwrapped. – Bart