Eug*_*sky 43 java json cycle jackson bidirectional-relation
我有两个实体:
Parent {
Child[] children;
}
and
Child {
Parent parent;
}
Run Code Online (Sandbox Code Playgroud)
我知道@JsonBackReference
和@JsonManagedReference
.如果我正在序列化实例,那么它们很好Parent
.
但我还需要传输实例,Child
并希望parent
填充该字段.
换一种说法:
Parent
它的序列化应该有,children
但他们的父字段可能是空的(可以通过使用json引用注释来解决).Child
它的序列化应该parent
与他们children
(但children
不必parent
填充.有没有办法使用标准的Jackson功能来解决它?
即跳过已经序列化的实体的序列化,而不是标记符合条件或不符合序列化条件的字段.
Sta*_*Man 41
Jackson 2.0确实支持完整的循环对象引用.有关示例,请参阅" Jackson 2.0发布 "("处理任何对象图形,甚至是循环图形!"部分).
基本上,您需要对@JsonIdentityInfo
需要id/idref样式处理的类型使用new .在你的情况下,这将是Parent
和Child
两种类型(如果一个扩展另一个,只需将其添加到超类型,这很好).
Ole*_*syn 21
jackson 2库中提供了非常方便的接口实现
@Entity
@JsonIdentityInfo(generator=ObjectIdGenerators.PropertyGenerator.class, property="id")
public class Parent { ....
@Entity
@JsonIdentityInfo(generator=ObjectIdGenerators.PropertyGenerator.class, property="id")
public class Child { ....
Run Code Online (Sandbox Code Playgroud)
在maven
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.0.2</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
@StaxMan提供了一个很好的链接开始
归档时间: |
|
查看次数: |
29721 次 |
最近记录: |