Сериализация набора 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
свойство аннотации - в противном случае Джексон попытается применить данный (де) сериализатор непосредственно к значению с сообщенным несоответствием,