Mam usługę WWW, która zwraca listę jako JSON. Używa Jackson do odwzorowania listy POJO Java w JSON. Problem polega na tym, że reprezentacja JSON ma obiekt otaczający wokół tablicy, a ja po prostu chcę tablicy. To znaczy, ja dostaję to:Pomijanie obiektu opakowania podczas serializacji obiektu Java do JSON przy użyciu usługi Jackson
{"optionDtoList":[{...}, ..., {...}]}
kiedy to, co naprawdę chcę to:
[{...}, ..., {...}]
ja szeregowania listy Java bezpośrednio; Nie pakuję List w obiekt opakowania i serializuję obiekt opakowania. To Jackson wydaje się dodawać obiekt wrappera JavaScript.
Zakładam, że istnieje adnotacja, której mogę użyć w POJO do stłumienia obiektu opakowania, ale go nie widzę.
Ograniczenia dotyczące rozwiązania
które chciałbym, aby to naprawić na stronie serwisu zamiast oderwanie opakowanie na kliencie. Klient jest widgetem JQuery UI (widżet autouzupełniania, nie to ma znaczenia), który oczekuje prostej tablicy i nie chcę modyfikować samego widżetu.
Co Próbowałem
- Próbowałem zastępując Lista POJOs Java z tablicą POJOs Javy, a wynik jest taki sam.
- Próbowałem
@JsonTypeInfo(use = Id.NONE)
myśląc, że to może powstrzymać opakowanie, ale tak się nie stało.
To brzmi jak serializacja niewłaściwego obiektu. Dlaczego nie możesz po prostu użyć Mappera do serializowania listy bezpośrednio zamiast serializacji otaczającego POJO? –
Sumeralizuję listę bezpośrednio. POJO są na liście. Problem polega na tym, że gdy serializuję listę, Jackson dodaje do niej opakowanie. Myślałem, że być może Jackson sam odróżniał obiekt listy od swojej tablicy, więc nawet spróbowałem serializować tablicę bezpośrednio. Brak szczęścia; Jackson nadal dodaje obiekt opakowania. –
Czy możesz pokazać nam kod? Używam Jackson dość często i nigdy nie doświadczyłem tego, co opisujesz. –