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.