何时在Java中使用Jackson来使用@JsonManagedReference和@JsonBackReference批注?
的@JsonManagedReference和@JsonBackReference 注解可以被用于在创建一个JSON结构双向 方式。@JsonManagedReference注解是一个前向参考在序列化过程,而其包括@JsonBackReference 注释是一个反向引用 在序列过程遗漏。
在下面的示例中,我们可以实现@JsonManagedReference和@JsonBackReference批注。
示例
import java.util.*;
import com.fasterxml.jackson.annotation.JsonManagedReference;
import com.fasterxml.jackson.annotation.JsonBackReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.core.JsonProcessingException;
public class ManagedReferenceBackReferenceTest {
public static void main(String args[]) throws JsonProcessingException {
BackReferenceBeanTest testBean = new BackReferenceBeanTest(110, "Sai Chaitanya");
ManagedReferenceBeanTest bean = new ManagedReferenceBeanTest(135, "Adithya Ram", testBean);
testBean.addEmployees(bean);
ObjectMapper mapper = new ObjectMapper();
String jsonString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(bean);
System.out.println(jsonString);
}
}
class ManagedReferenceBeanTest {
public int empId = 115;
public String empName = "Raja Ramesh";
@JsonManagedReference
public BackReferenceBeanTest manager;
public ManagedReferenceBeanTest(int empId, String empName, BackReferenceBeanTest manager) {
this.empId = empId;
this.empName = empName;
this.manager = manager;
}
}
class BackReferenceBeanTest {
public int empId = 125;
public String empName = "Jai Dev";
@JsonBackReference
public List<ManagedReferenceBeanTest> list;
public BackReferenceBeanTest(int empId, String empName) {
this.empId = empId;
this.empName = empName;
list = new ArrayList<ManagedReferenceBeanTest>();
}
public void addEmployees(ManagedReferenceBeanTest managedReferenceBeanTest) {
list.add(managedReferenceBeanTest);
}
}输出结果
{
"empId" : 135,
"empName" : "Adithya Ram",
"manager" : {
"empId" : 110,
"empName" : "Sai Chaitanya"
}
}热门推荐
1 泰迪狗狗如何训练
3 狗狗训练图
5 狗狗训练方法
6 训练狗狗不咬人
8 敏捷训练狗狗
10 训练狗狗吃饭
11 泰迪狗狗训练
12 狗狗从多大开始训练
13 狗狗训练学校费用
14 怎么去训练狗狗
15 狗狗训练狗狗
16 狗狗训练教程
17 训练狗狗装死
18 泰迪狗狗的训练方法