Esquema de validar forma, contenido y permiso.Ampliar esquema ↗
Esquema educativo propio: Validar forma, contenido y permiso.

Un JSON válido no garantiza que la información que contiene sea correcta ni útil para la acción que se pretende realizar. La validación de la sintaxis es solo el primer paso. Los modelos pueden devolver datos estructurados de forma correcta, pero esos datos pueden no corresponder con la realidad o con las reglas que se esperan. Por ejemplo, un campo numérico puede estar bien formateado, pero su valor podría no ser el esperado. Por eso, es fundamental contrastar lo que el modelo devuelve con los datos originales y las condiciones que se han establecido.

La idea, paso a paso

La estructura de un JSON define cómo están organizados los datos, pero no dice nada sobre su contenido ni su veracidad. Un ejemplo claro es el caso de un extractor de información que devuelve el total de una factura. Si el JSON incluye un campo "total" con valor 1234.56, la sintaxis puede ser correcta, pero si el valor no corresponde con el que está en el documento original, la información sigue siendo incorrecta. Por lo tanto, es necesario validar tanto la estructura como el contenido del JSON para asegurar que el dato es útil y preciso.

Un ejemplo para entenderlo

Un extractor de una factura ficticia devuelve un total de 1234.56. El valor numérico y la cadena "1234.56" pueden formar parte de JSON válidos, pero tienen tipos distintos. Un esquema puede aceptar uno y rechazar el otro. Incluso aceptando el tipo, aún queda comprobar si el importe coincide con el documento antes de utilizarlo.

Qué conviene comprobar

Un error común es asumir que si el JSON es válido, entonces se puede proceder con la acción que se tenía planeada. Sin embargo, esto puede llevar a decisiones incorrectas. Por ejemplo, un modelo puede devolver una fecha en el formato correcto, pero si esa fecha no coincide con la del documento original, no se puede considerar válida para el proceso que se está realizando. Además, los proveedores de funciones estructuradas suelen tener límites y restricciones propias; no todos los modelos ofrecen el mismo nivel de precisión o soporte para cada tipo de tarea. Por eso, es importante no suponer que un modelo puede manejar cualquier caso sin limitaciones.

Para comprobar si el JSON devuelto es útil, es necesario realizar tres tipos de validaciones: estructura, contenido original y permiso para actuar. En primer lugar, se debe verificar que el JSON tenga la forma correcta: campos, tipos y estructura. En segundo lugar, se debe contrastar el contenido del JSON con el documento original o con la información que se espera. Finalmente, se debe comprobar que la aplicación y el usuario tengan permiso para realizar la acción, es decir, que no haya reglas de negocio o políticas que impidan la acción que se pretende realizar.

Definir estas tres validaciones —estructura, contenido original y permiso para actuar— ayuda a evitar errores y a comprobar las salidas estructuradas antes de utilizarlas. La validación de la estructura comprueba cómo están organizados los datos, el contraste con el original permite detectar discrepancias y el permiso para actuar asegura que se puede proceder con la acción que se tenía planeada.

En JSON, 1234.56 es un número y "1234.56" es una cadena de texto. Ambos pueden aparecer en un JSON sintácticamente válido, pero un esquema que exija un número debe distinguirlos. Después hay que contrastar el dato con el documento y comprobar quién está autorizado a realizar la acción.

Pruébalo con un caso pequeño

Define tres validaciones: estructura, dato original y permiso para actuar.

Para revisar tu ejercicio, distingue qué dato entra, qué resultado esperas y con qué evidencia lo comprobarías. Si aparece una duda, anótala como tal en lugar de completar el dato. El propósito es detectar una decisión concreta que puedas justificar, no obtener una respuesta que solo suene convincente.

Cómo leer el esquema

La ilustración organiza los conceptos explicados en el artículo. Es un esquema educativo, no una medición de un sistema real.

Fuentes

Documentación original utilizada para los conceptos de este artículo.

Sigue explorando