Существует функция сопоставления объектов для сериализации карт, отсортированных по ключам карты, но о наборах Java ничего не сказано. Если я сохраню элементы в java.util.Set в своем POJO, будет ли Jackson ObjectMapper сериализовать их в массив JSON в любом порядке?
Если нет, я подумываю о написании собственного сериализатора для этого набора - есть ли лучший способ, который кто-нибудь может предложить?
В конечном итоге цель состоит в том, чтобы десериализовать массив уникальных целых чисел в какой-то контейнер в pojo «запроса». Затем обработайте запрос и передайте это поле ввода в соответствующее поле вывода (без изменений) в объекте «ответ».
Я хотел бы сохранить данные в POJO как java.util.Set, чтобы все пользователи были довольны (если вы попытаетесь сохранить их как подтип Set, тогда потребители интерфейса POJO могут быть расстроены тем, что они не могут просто получить Set, но им придется ожидайте HashSet или TreeSet).
Будет ли это работать?
- Массив JSON [5,4,3,2,1] десериализуется в Set НО, я использую @JsonDeserialize(as=TreeSet.class) в методе установки. Таким образом, типом времени выполнения объекта теперь является TreeSet (даже несмотря на то, что он хранится в POJO как Set).
- The Set передается через сервер и в конечном итоге заканчивается сохранением в POJO ответа (тип времени выполнения по-прежнему TreeSet, даже если тип поля POJO — Set).
- сериализует TreeSet в массив JSON [1,2,3,4,5] (поскольку TreeSet сортируется естественным образом).
Код: Выделить всё
ObjectMapper
Как могу ли я гарантировать, что мой Set будет преобразован в массив JSON в отсортированном порядке?
Подробнее здесь: https://stackoverflow.com/questions/471 ... -ascending
Мобильная версия