Usar serializador personalizado con Jackson en Java
- Serialización en Java
- Serializador personalizado con Jackson en la clase
-
Usa el método
serialize()
en Java
Este tutorial verá cómo utilizar un serializador personalizado con Jackson en Java. Primero, echemos un vistazo al concepto de serialización.
Serialización en Java
El proceso de serialización en Java es una técnica para convertir un objeto hacia y desde un flujo de bytes. Esto no solo permite almacenar un objeto en un archivo, sino que también permite enviar un objeto a través de una red.
El proceso de serialización comienza con la creación de una implementación de la interfaz Serializable, seguido del uso de Java.io
.
Serializador personalizado con Jackson en la clase
Vamos a crear dos clases simples, Cliente
y Producto
.
Código - Clase Cliente
:
public class Customer {
public int id;
public String Cname;
}
Código - clase Producto
:
public class Product {
public int id;
public String Productname;
public Customer buyer;
}
Aplicar JsonSerialize
en la Clase
Ahora, registraremos el serializador en la clase como se muestra a continuación.
@JsonSerialize(using = ProductSerializer.class)
public class Product {
public int id;
public String Productname;
public Customer buyer;
}
Luego aplique la serialización estándar.
Product p = new Product(10, "drinks", new Customer(12, "Peter"));
String serialized = new ObjectMapper().writeValueAsString(p);
Por último, obtendremos la salida JSON
individualizada generada por el serializador y definida mediante el @JsonSerialize
.
Usa el método serialize()
en Java
Podemos usar la clase StdSerializer
para implementar un serializador personalizado. En este caso, necesitaremos anular el método serialize()
.
Sintaxis:
public abstract void serialize(Product val, JsonGenerator jg, SerializerProvider p)
throws IOException
Si no le importa tener un serializador personalizado, no necesita desarrollar uno para la clase Producto
. En su lugar, debe escribir uno para la clase Cliente
.
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