Как сериализатор и Deseralize sub -Class of Set в качестве известного набора с Jackson 2JAVA

Программисты JAVA общаются здесь
Anonymous
Как сериализатор и Deseralize sub -Class of Set в качестве известного набора с Jackson 2

Сообщение Anonymous »

Я пытаюсь последовать классу JPA Managed Class (OpenJPA). < /p>

Этот класс содержит набор. Во время выполнения типа этого набора является org.apache.openjpa.util.java $ util $ linkedhashset $ proxy (мы используем OpenJPA). < /P>

Джексон будет сериализовать этот штраф, но затем потерпит неудачу, когда он придет к десеризации, так как этот тип не может быть создан (и при использовании Spring Security's Gackson конфигурации, он не будет конфигурировать). />
Итак, теперь я думаю, что решение состоит в том, чтобы настроить сериализацию, чтобы она была серизирована и десериализована как более стандартный набор. Когда он десериализован, ему нужно только реализовать набор.@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.PROPERTY)
@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY, getterVisibility = JsonAutoDetect.Visibility.NONE)
public static class UserMixin {
@JsonDeserialize(as = LinkedHashSet.class, contentAs = LinkedHashSet.class)
@JsonSerialize(as = LinkedHashSet.class, contentAs = LinkedHashSet.class, typing = Typing.DYNAMIC)
private Set roles;

}
< /code>

Но когда я запускаю с этим, я получаю < /p>

Invalid definition for property roles (of type 'Lxxx/yyy/User;'): Can not refine serialization content type [simple type, class xxx.yyy.Role] into java.util.LinkedHashSet; types not related< /code> < /p>

и эта ошибка возникает при сериализации.

Подробнее здесь: https://stackoverflow.com/questions/507 ... th-jackson

Вернуться в «JAVA»