Font Size

SCREEN

Profile

Layout

Direction

Menu Style

Cpanel

Aninki Code

Jackson


Es un procesador JSON  escrito en Java, rápido, sencillo y flexible

+ INFO

Jackson - Indice contenidos

 

Jackson - Enlaces de interes

BeanUtils diferencia entre varios tipos de propiedades dentro de los javabeans:

Jackson Genear json a partir de un bean

Lo primero que tendremos que hacer para generar un JSON, es necesario recoger una instancia del mapeador de objetos

        ObjectMapper mapper = new ObjectMapper();
        mapper.setVisibilityChecker(mapper.getVisibilityChecker().withFieldVisibility(Visibility.ANY));

Si queremos que serialice lo objetos que están a null, hay que definir la politca al respecto.

  //para que no serialice los objetos que están a null. Lo mismo que la anotación de arriba
      mapper.setSerializationInclusion(Inclusion.NON_NULL);

 También podemos definir que si alguna propiedad no la puede mapear, la ignore

      
	//si hay alguna propiedad que no puede mapear, la ignora
	mapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false); 


 Para escribir al fichero (en este caso el objeto curso), sólo tenemos que invocar el método writeValue.

  mapper.writeValue(new File(FICHERO_JSON), curso);

Jackson Mapear un fichero JSON a un Bean

La lectura de un fichero JSON y mapearla a un hashMap la realizamos median la orden

        	Map<String,Object> userData = mapper.readValue(new File(FICHERO_JSON), Map.class);

En este mapa estarán almacenados la claves y los valores de objeto JSON. A continuación se lista las propiedades y a qué tipo mapea:

JSON Type

Java Type

object

LinkedHashMap<String,Object>

array

ArrayList<Object>

string

String

number (no fraction)

Integer, Long or BigInteger (smallest applicable)

number (fraction)

Double (configurable to use BigDecimal)

true|false

Boolean

null

null

Jackson Tree Model

Jackson también permite generar un árbol, del mismo tipo al de un xml a partir de JSON.

En primer lugar,leeremos el contenido de la cadena JSON

        	// Puede mapearlo a un nodo o a un ejemplo
		//leemos una entrada en json
		JsonNode rootNode = m.readValue(new File(PATH_FICHERO), JsonNode.class);

 

A partir de este contendo leido, podemos leer un nodo

		    //leemos el valor de un nodo
		    JsonNode nameNode = rootNode.path("profesor");		    
		    String lastName = nameNode.path("nombre").getTextValue();

Asimismo podemos modificar el valor de un nodo en el mapa

		     //Cambiamos el valor de un nodo
		      ((ObjectNode)nameNode).put("apellido", "Glez");
		   
		   // and write it out:
		   m.writeValue(new File(PATH_FICHERO), rootNode);

Jackson Annotations

Jackson dispone de anotaciones para el manejar mejor de ciertas características.

  • @JsonIgnore : Indicamos que no queremos serializar una propiedad
          @JsonIgnore 
	   public int creditos; 

 

  • @JsonSerialize(include=Inclusion.NON_NULL) : Indica que no incluya las propiedades que son null
		   	@JsonSerialize(include=Inclusion.NON_NULL)
                        public static void main(String[] args) {
  • @JsonSerialize(include=Inclusion.NON_DEFAULT) : Excluye las propiedades que han sido inicializadas
		 @JsonSerialize(include=Inclusion.NON_DEFAULT)
	         public static void main(String[] args) {