Saltar al contenido principal
riqo.ioHerramientas para grandes ideas

JSON: sintaxis, tipos, estructura y validación

Una guía completa de JSON como formato de intercambio: gramática, tipos, parsing, serialización, validación e interoperabilidad.

Qué es JSON y por qué está tan extendido

JSON, JavaScript Object Notation, es un formato textual para representar datos estructurados. En la práctica es independiente del lenguaje y se usa en API, configuraciones, ficheros de intercambio y persistencia ligera.

Su gramática reducida se adapta bien a objetos, diccionarios, listas y valores escalares. Esa sencillez no elimina la diferencia entre sintaxis válida, estructura esperada y significado de la aplicación.

Objetos, arrays y tipos de valor

Un documento JSON es un único valor: objeto, array, cadena, número, booleano o null. Los objetos contienen miembros con claves de texto; los arrays son secuencias ordenadas y pueden anidar cualquier otro valor JSON.

JSON no define tipos nativos para fechas, UUID, binarios o decimales de precisión arbitraria. Esos significados se acuerdan en el contrato de la aplicación, por ejemplo mediante cadenas ISO 8601 o una codificación textual para datos binarios.

Reglas sintácticas importantes

Las cadenas usan comillas dobles, los miembros se separan con comas y no se permiten comas finales. Los literales true, false y null van en minúsculas. Las secuencias de escape permiten representar comillas, barras inversas y caracteres de control.

Los números JSON no incluyen NaN ni Infinity y no todos los runtimes conservan la misma precisión para valores grandes. Por ello un documento puede ser válido y aun así perder información numérica al ser consumido.

Parsing, serialización y round trip

El parsing convierte texto JSON en estructuras del programa; la serialización hace el recorrido inverso. Pretty-print y minify cambian espacios y saltos, no el valor lógico del documento.

Un round trip fiable exige cuidar números, orden de propiedades, Unicode y tipos de dominio. El orden de claves de un objeto no debería transportar significado, mientras que el orden de un array sí forma parte de su estructura.

Validez sintáctica frente a validación estructural

Que un JSON sea válido significa primero que cumple la gramática. No demuestra que tenga los campos requeridos, que los valores pertenezcan al dominio correcto o que una petición API sea aceptable.

JSON Schema permite expresar propiedades obligatorias, tipos, patrones, rangos y composición de esquemas. La validación de negocio sigue siendo otra capa cuando depende de permisos, bases de datos o reglas del dominio.

Errores comunes e interoperabilidad

Son frecuentes las comillas simples, comas finales, comentarios, claves sin comillas y literales no estándar. Algunos parsers permisivos los aceptan, pero no forman parte de JSON estándar.

Para intercambiar datos entre sistemas conviene acordar UTF-8, contrato de campos, diferencia entre null y ausencia, límites numéricos y estrategia de evolución. Un payload legible no es por sí solo un contrato interoperable.

Buenas prácticas y alternativas

Usa estructuras previsibles, nombres coherentes y contratos versionables. Documenta unidades, zonas horarias, enumeraciones y comportamiento de valores opcionales.

YAML favorece configuraciones escritas por personas y XML ofrece namespaces, contenido mixto y herramientas de esquema maduras. JSON es excelente en muchos escenarios de API, pero la elección debe responder al problema concreto.

Guías relacionadas

JSON Schema: describir y validar estructuras de datos

Cómo JSON Schema expresa tipos, propiedades, restricciones, composición y compatibilidad de documentos JSON.

JSON vs YAML vs XML: qué formato elegir

Comparación razonada de JSON, YAML y XML para API, configuración, documentos, esquemas e interoperabilidad.