Eme*_*son 5 java serialization json jackson jsonb
我正在尝试序列化具有双向关系的实体:
class TypeA {
String name;
TypeB typeB;
}
class TypeB {
String identifier;
TypeA typeA;
}
Run Code Online (Sandbox Code Playgroud)
与杰克逊我解决@JsonBackReference中的TypeB属性和@JsonManagedReference中的typeA属性,但我怎么能做到这一点的JSONB(Eclipse的Yasson实现)?
Caused by: javax.json.bind.JsonbException: Recursive reference has been found in class class xxxxxx.model.Analysis.
at org.eclipse.yasson.internal.serializer.ObjectSerializer.serializeInternal(ObjectSerializer.java:76)
at org.eclipse.yasson.internal.serializer.AbstractContainerSerializer.serialize(AbstractContainerSerializer.java:107)
at org.eclipse.yasson.internal.serializer.AbstractContainerSerializer.serializerCaptor(AbstractContainerSerializer.java:125)
at org.eclipse.yasson.internal.serializer.ObjectSerializer.marshallProperty(ObjectSerializer.java:121)
at org.eclipse.yasson.internal.serializer.ObjectSerializer.serializeInternal(ObjectSerializer.java:69)
... 45 more
Run Code Online (Sandbox Code Playgroud)
OBS:我用 DTO 解决了,但疑问依然存在。
为了解决圆形结构,您应该使用@JsonbTransient。如文档 [0] 中所述:
[0]:http : //json-b.net/docs/user-guide.html#ignoring-properties