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