Java EE 8 - Json Binding

Una de las nuevas características de Java EE 8 es el api de JSON-B, o Json Binding, que consiste en mapear cada entrada de un dato json a un objeto java.

Aquí unos ejemplos:

De cadena json a objeto

Considerando que existe una clase Libro con algunas propiedades, podemos convertir rápidamente de una cadena a un objeto, siempre y cuando las propiedades coincidan. Si no coincide un atributo del json con un campo del objeto, lo pondrá nulo.

        String json = "{\"nombre\":\"Los gatos caen de pie\",\"anio\":1234 }";

        Libro libro = JsonbBuilder.create().fromJson(json, Libro.class);
        System.out.println("libro:" + libro);


Y el resultado es:

libro:Libro{nombre=Los gatos caen de pie, anio=1234, isbn=null, fechaPublicacion=null}

De objeto a cadena json

Esta es otra forma muy útil. Primero instanciaremos nuestro objeto, y luego lo convertiremos:
        Libro libro = new Libro();
        libro.setAnio(2014);
        libro.setNombre("Los gatos no ladran");
        libro.setIsbn("123-456-789");
        libro.setFechaPublicacion(new Date());
        libro.setPrecio(13456.0);

        String json = JsonbBuilder.create(config).toJson(libro);

        System.out.println("json:" + json);



Adicionalmente, podemos usar el parámetro config para definir cómo será el json resultante:
        config = new JsonbConfig()
                .withFormatting(true)
                .withDateFormat("dd-MMMM-yyyy", Locale.getDefault())
                .withPropertyNamingStrategy(PropertyNamingStrategy.LOWER_CASE_WITH_UNDERSCORES);



El resultado es sorprendente:

--- tojson ---
json:
{
    "anio": 2014,
    "fecha_publicacion": "20/11/2017",
    "isbn": "123-456-789",
    "nombre": "Los gatos no ladran",
    "valor": "13,456.00000"
}

Código fuente

El código fuente del proyecto lo pueden descargar de aquí:

Post a Comment

Si quieres hacer una pregunta más específica, hazla en los foros que tenemos habilitados en Google Groups


Ah! solo se permiten comentarios de usuarios registrados. Si tienes OpenID, bienvenido! Puedes obtener su OpenID, aquí: http://openid.net/

Artículo Anterior Artículo Siguiente