Verwenden Sie benutzerdefinierten Serializer mit Jackson in Java
- Serialisierung in Java
- Benutzerdefinierter Serializer mit Jackson in der Klasse
- 
          
            Verwenden Sie die serialize()-Methode in Java
 
In diesem Tutorial erfahren Sie, wie Sie einen benutzerdefinierten Serializer mit Jackson in Java verwenden. Schauen wir uns zunächst das Serialisierungskonzept an.
Serialisierung in Java
Der Serialisierungsprozess in Java ist eine Technik zum Konvertieren eines Objekts in und aus einem Bytestrom. Dies ermöglicht nicht nur das Speichern eines Objekts in einer Datei, sondern auch das Versenden eines Objekts über ein Netzwerk.
Der Serialisierungsprozess beginnt mit der Erstellung einer Implementierung der Serializable-Schnittstelle, gefolgt von der Verwendung von Java.io.
Benutzerdefinierter Serializer mit Jackson in der Klasse
Lassen Sie uns zwei einfache Klassen erstellen, Kunde und Produkt.
Code - Klasse Kunde:
public class Customer {
  public int id;
  public String Cname;
}
Code - Klasse Produkt:
public class Product {
  public int id;
  public String Productname;
  public Customer buyer;
}
Wenden Sie JsonSerialize in der Klasse an
    
Jetzt registrieren wir den Serializer in der Klasse wie im Folgenden.
@JsonSerialize(using = ProductSerializer.class)
public class Product {
  public int id;
  public String Productname;
  public Customer buyer;
}
Wenden Sie dann die Standardserialisierung an.
Product p = new Product(10, "drinks", new Customer(12, "Peter"));
String serialized = new ObjectMapper().writeValueAsString(p);
Zuletzt erhalten wir die individualisierte JSON-Ausgabe, die vom Serializer generiert und mit @JsonSerialize definiert wurde.
Verwenden Sie die serialize()-Methode in Java
Wir können die Klasse StdSerializer verwenden, um einen benutzerdefinierten Serializer zu implementieren. In diesem Fall müssen wir die Methode serialize() überschreiben.
Syntax:
public abstract void serialize(Product val, JsonGenerator jg, SerializerProvider p)
    throws IOException
Wenn es Ihnen nichts ausmacht, einen benutzerdefinierten Serializer zu haben, brauchen Sie keinen für die Klasse Product zu entwickeln. Stattdessen sollten Sie eine für die Klasse Kunde schreiben.
public void serialize(Product value, JsonGenerator jg, SerializerProvider p)
    throws IOException, JsonProcessingException {
  jg.writeNumber(id);
}
I have been working as a Flutter app developer for a year now. Firebase and SQLite have been crucial in the development of my android apps. I have experience with C#, Windows Form Based C#, C, Java, PHP on WampServer, and HTML/CSS on MYSQL, and I have authored articles on their theory and issue solving. I'm a senior in an undergraduate program for a bachelor's degree in Information Technology.
LinkedIn