FlexJson – Incluir o excluir campos a serializar.

La clase JSONSerializer de la libreria FlexJson permite serializar objetos Java a su representación JSon. Es importante hacer uso de las exclusiones e inclusiones, para evitar parsear campos que no necesitamos enviar a la capa de interfaz. O para controlar y evitar posibles errores de parseo en objetos con relaciones circulares.

Como ejemplo, para el parseo de un objeto ConsultaPermiso con objetos agregados Consulta y Usuario, quiero excluir todos los campos de dichos objetos agregados, e incluir de estos solo los campos: consulta.id, usuario.id y usuario.nombre.

public class ConsultaPermiso {

    @ManyToOne
    private Consulta consulta;

    @ManyToOne
    private Usuario usuario;

    @Enumerated
    private TipoPermiso permiso;
    
    public static String toJsonArray(Collection<ConsultaPermiso> collection) {
        return new JSONSerializer().exclude("*.class").include("consulta.id", "usuario.id", "usuario.nombre").exclude("consulta.*", "usuario.*").serialize(collection);
    }
...

Un ejemplo del JSon resultante sería:

[{"id":100, "consulta":{"id":200}, "permiso":"VER", "usuario":{"id":"1","nombre":"User1"}, "version":0}]
Advertisements