Heim > Java > javaLernprogramm > Wann sollten @JsonManagedReference- und @JsonBackReference-Annotationen in Java mit Jackson verwendet werden?

Wann sollten @JsonManagedReference- und @JsonBackReference-Annotationen in Java mit Jackson verwendet werden?

WBOY
Freigeben: 2023-09-05 22:33:06
nach vorne
1115 Leute haben es durchsucht

Die

Wann sollten @JsonManagedReference- und @JsonBackReference-Annotationen in Java mit Jackson verwendet werden?

@JsonManagedReference und @JsonBackReference Annotationen können verwendet werden, um JSON-Strukturen auf >bidirektionale Weise zu erstellen. Die Annotation @JsonManagedReference ist eine Vorwärtsreferenz, die während der Serialisierung einbezogen wird, während die Annotation @JsonBackReference eine Rückreferenz ist, die während der Serialisierung weggelassen wird.

Im folgenden Beispiel können wir die Annotationen @JsonManagedReference und @JsonBackReference implementieren.

Beispiel

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);
   }
}
Nach dem Login kopieren

Ausgabe

{
   "empId" : 135,
   "empName" : "Adithya Ram",
   "manager" : {
      "empId" : 110,
      "empName" : "Sai Chaitanya"
   }
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWann sollten @JsonManagedReference- und @JsonBackReference-Annotationen in Java mit Jackson verwendet werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage