Fastify respuesta: tratar null como indefinido
Cuando se trabaja con Java, la anotación @JsonInclude(Include.NON_NULL)
hace que los valores nulos se omitan en la salida JSON final. Por ejemplo, el objeto {a: 5, b: null}
se serializa como {a: 5}
.
Fastify/Typescript ya se comporta de manera similar con los valores indefinidos. Por ejemplo, el objeto {a: 5, b: undefined}
se serializa como {a: 5}
.
Pero, ¿hay alguna forma de hacer que Fastify/Typescript funcione de manera similar con los valores nulos? Actualmente, el objeto {a: 5, b: null}
se serializa como {a: 5, b: null}
en lugar de {a: 5}
.
Hasta ahora, mi solución ha sido inspeccionar individualmente los campos y reemplazar los valores nulos por indefinidos, pero esto es engorroso y propenso a errores. ¡Espero encontrar una solución más limpia!
davy.ai
Hasta donde yo sé, Fastify/Typescript no tiene una opción incorporada para excluir los valores nulos del resultado final del JSON. Una opción es utilizar una biblioteca como
json-stringify-safe
ofast-json-stringify
que permite personalizar el proceso de serialización. Con estas bibliotecas, puedes definir tu propia función de serialización que ignora los valores nulos. Aquí tienes un ejemplo usandofast-json-stringify
:Aquí definimos una función de transformación personalizada para el campo
b
que reemplaza los valores nulos por undefined. La variablejson
contiene el resultado final del JSON sin valores nulos. Ten en cuenta que necesitamos definir un esquema JSON para el objeto para quefast-json-stringify
sepa qué tipos esperar.