Jackson Flashcards

1
Q

Para que sirve la dependencia Jackson-Databinding

A

Es la dependencia que necesitamos si queremos serializar objetos JSON a Java y de Java a JSON, las dependencias que debemos usar son las que vienen del paquete FasterXML

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Si queremos mapear un objeto Json a una clase Java sin hacer ninguna modificacion en nombres que debemos de hacer

A

Debemos crear la clase con las siguientes caracteristicas:

  1. Crear variables de instancias(Los nombres deben de ser iguales que a los del objeto JSON para no hacer ninguna configuracion extra)
  2. Crear metodos getter and setters
  3. Opcionalmente podemos sobreescribir el metodo toString para obtener la representacion del objeto en java
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Como se pasamos un objeto java a un objeto JSON

A

Creamos una intancia del objeto ObjectMapper

Una vez creado el objeto, utilizamos el metodo om.writeValue y le pasamos el archivo en donde queremos escribir el JSON y el objeto que queremos mapear

Ejemplo:

Person jesus = new Person(30, “Jesus”);

ObjectMapper om = new ObjectMapper();

om.writeValue(new File(“nameOfFileWherwWrite.json”), jesus);

Esto hara un hara un archivo llamado nameOfFileWherwWrite.json en donde estara la representacion json de nuestro objeto jesus

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Como se pasamos un objeto JSON a un objeto java

A

Primero tenemos que crear una instancia del tipo ObjectMapper y despues utilizar el metodo llamado readValue y le pasamos el archivo de donde vamos a leer y la clase que representara a ese archivo, ejemplo:

ObjectMapper om = new ObjectMapper();

om.readValue(new File(“patient.json”), Patient.class);

Es importante mencionar que cuando usamos el metodo readValue, debemos de especificar el nombre de la clase con terminacion .class en lugar de un objeto a diferencia de cuando usamos writeValue que le pasamos el objeto

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Cuales son las anotaciones que aplican tanto para leer o para escribir JSON to JAVA o JAVA to JSON (readValue o writeValue)

A

@JsonIgnore: nos sirve para excluir una propiedad en especifico de ser incluida en cualquier tipo de trasformacion(JAVA-JSON o JSON-JAVA) y se usa a nivel variable de instancia

Ejemplo de uso:

@JsonIgnore

private String name; //En este caso name no va a ser serializado

@JsonIgnoreProperties: nos sirve excluir un set de propiedades en cualquier tipo de trasformacion(JAVA-JSON o JSON-JAVA), se usa a nivel de clase, ejemplo:

@JsonIgnoreProperties({“name”, “lastName”, “Age”})

public class Patient

.

.

more instance variables

.

.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Cuales son las anotaciones que aplican solo para lectura(readValue)

A

@JsonSetter

Cuando no se llaman igual los objetos dej JSON a las propiedades del objeto Java, podemos especificar en el setter de la propiedad java el nombre con el cual se debe matchear en el JSON, supongamos que en el JSON se llama la propiedad fullName y en llava full_name, lo que tenemos que hacer es lo siguiente

@JsonSetter(“fullName”) //Asi se la encontramos en el JSON

private void full_name(String full_name){ //Asi la encontramos en Java

….

}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Cuales son las anotaciones que aplican solo para escritura (writeValue)

A

@JsonInclude: se utiliza para incluir una o muchas propiedades dada una condicion, por ejemplo NON_EMPTY, se usa a nivel de clase y si cumple la propiedad incluira la propiedad en el JSON que escribira, de lo contrario no estara presente esta propiedad propiedad

@JsonPropertyOrder: define el orden en que se deben de escribir las propiedades de en el Json, se utiliza a nivel de clase

Ejemplo de ambas anotaciones:

@JsonInclude(JsonInclude.NON_EMPTY)

@JsonPropertyOrder({“PropTen”, “PropNine”, PropEight, … ,PropOne})//En orden decendente

public class Patient{

.

.

.

}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Que necesitamos para leer (readValue) desde un archivo JSON

A

Es requerido un contructor default, si utilizamos objetos anidados debemos especificarle tambien un constructor default, este caso ocurre cuando tenemos un constructor customizado y no ponemos el default, nos mandara un error de que necesitamos uno default

How well did you know this?
1
Not at all
2
3
4
5
Perfectly