Сериализация набора UUID с использованием Джексона

Я обнаружил, что Джексон оснащен сериализатором / десериализатором UUID, который можно использовать следующим образом:

@Data
@NoArgsConstructor
public class MyClass {

    @JsonSerialize(using=UUIDSerializer.class)
    @JsonDeserialize(using=UUDIDeserializer.class)
    private UUID myUUID;

}

А потом с помощью ObjectMapper на MyClass будет правильно сериализовать / десериализовать myUUID поле.

Однако у моего класса есть набор UUID, которые я хочу сериализовать. Я попытался аннотировать поле так же, как и выше, но жалуется, что Set не может быть преобразован в UUID (как я и ожидал).

Я знаю, что могу создать свой собственный сериализатор / десериализатор путем расширения JsonSerializer/JsonDeserializer, но это кажется счастливым. Есть ли другое решение, которое я могу использовать? У меня также нет возможности настроить ObjectMapper с моими уроками, так как у меня нет доступа к ObjectMapper, Я использую Amazon SWF, и он автоматически использует Джексона.

1 ответ

Решение

Джексон должен автоматически использовать UUID-сериализаторы, десериализаторы, поэтому ваши аннотации не понадобятся.

Но что касается использования аннотаций, как и предполагалось, (de) сериализатор для контента (а не само значение!) Должен использовать contentUsing свойство аннотации - в противном случае Джексон попытается применить данный (де) сериализатор непосредственно к значению с сообщенным несоответствием,

Другие вопросы по тегам