Używam Jackson 2.2.3 i potrzebuję przekonwertować drzewo JsonNode na ciąg z posortowanymi klawiszami pola. Nie mam pojęcia, jak to zrobić, zwłaszcza, że przeciwieństwo jest tak proste - JsonNode jn = ObjectMapper.readTree(String s)
.Jackson JsonNode na ciąg z posortowanymi kluczami
Wygląda na to, że właściwą metodą jest void writeTree(JsonGenerator jgen,JsonNode rootNode)
. Jednak nie widzę sposobu, aby następnie uzyskać numer seryjny String
od JsonGenerator
. Zakładam, że nadal będzie obowiązywać SerializationFeature.ORDER_MAP_ENTRIES_BY_KEYS
, ponieważ JsonGenerator.Feature
s nie ma tej opcji. Czy istnieje prostszy sposób, aby to zrobić - lub jeśli nie, w jaki sposób pobrać ciąg serializowany z JsonGenerator
?
Czy istnieje sposób sortowania tablic wewnątrz JSON? To rozwiązanie nie działa, jeśli masz tablicę json: '{id: 1, kolekcja: [z, y]}' po seiralizacji, jeśli jest to bacame '{kolekcja: [z, y], id: 1}' dzięki czemu elementy w kolekcji * * Nie zamówiłem wcale! :( – Cherry
@Cherry Po prostu posortuj tablicę przed serializacją, dlatego Jackson potrzebuje możliwości sortowania map, ponieważ mapy nie mają nieodłącznego uporządkowania.Aparaty robią, więc aplikacja może zamówić tablice zgodnie z oczekiwaniami przed serializowaniem do JSON. nie jest możliwe (ogólnie) dla map. – elhefe