JSON—JavaScript Object Notation—es el formato ubicuo basado en texto para el intercambio de datos estructurados. Está estandarizado tanto por la IETF como RFC 8259 y por Ecma International como ECMA-404, que juntos definen la sintaxis compacta e independiente del idioma que impulsa las API, los registros, las configuraciones y las bases de datos modernas.
Un valor JSON es un objeto, array, cadena, número, o uno de los literales true, false, o null; los objetos asignan cadenas a valores y los arrays contienen valores ordenados, con espacios en blanco insignificantes permitidos alrededor de los caracteres estructurales (RFC 8259, ECMA-404). Aunque JSON se originó en JavaScript, es independiente del idioma y es compatible prácticamente en todas partes (MDN: JSON). En la transmisión, la codificación de facto y recomendada es UTF-8 (RFC 8259 §8.1). Para mayor seguridad de interoperabilidad, el perfil I-JSON (RFC 7493) endurece las reglas sobre codificaciones y rangos numéricos.
En JavaScript, el objeto global JSON expone dos caballos de batalla:JSON.parse (con un reviver opcional) y JSON.stringify (con reemplazador/espaciado para una impresión bonita), como se documenta en MDN (parse, stringify).
La gramática numérica de JSON es decimal, pero la especificación no dicta la precisión ni las distinciones entre enteros y flotantes. Las implementaciones eligen cómo representarlos (RFC 8259 §6). En JavaScript y Node.js, Number es de doble precisión IEEE-754, lo que significa que solo los enteros en [−(2^53−1), 2^53−1] son exactamente seguros; consulte Number.MAX_SAFE_INTEGER y el tipo BigInt. Es por eso que las API públicas a menudo envían los ID como cadenas y validan los "enteros seguros" explícitamente.
A medida que maduró el uso, surgieron estándares para direccionar y modificar JSON en su lugar. JSON Pointer (RFC 6901) es una sintaxis diminuta delimitada por barras para localizar valores (p. ej., /a/b/0) con reglas de escape para ~ y /. JSON Patch (RFC 6902) modela actualizaciones parciales como operaciones ordenadas (add, remove, replace, move, copy, test) y viaja como application/json-patch+json. Para diferencias más simples, JSON Merge Patch (RFC 7386) utiliza una fusión con forma de documento: los campos presentes se agregan/reemplazan; establecer un campo en null lo elimina. Muchos frameworks admiten una o ambas formas de manera nativa.
JSON en sí mismo no tiene esquema, pero los ecosistemas se apoyan en esquemas para la validación, la documentación y la generación de código. La familia JSON Schema 2020-12 especifica restricciones como type, properties, items y palabras clave de composición, y se alinea con OpenAPI 3.1. Para flujos de trabajo centrados en la generación de código, JSON Type Definition (RFC 8927) ofrece un lenguaje deliberadamente menos expresivo que se asigna de manera predecible a los sistemas de tipos convencionales.
El JSON clásico espera un texto completo por carga útil, lo que complica la transmisión de registros y las respuestas de larga duración. Dos patrones ayudan:
application/json-seq.Cuando el ancho de banda o la velocidad dominan, los formatos "JSON binario" preservan el modelo de datos de JSON mientras cambian la legibilidad humana por la eficiencia:
Debido a que JSON es solo texto, la mayoría de los riesgos provienen de cómo lo transporta y lo maneja:
<script> con una devolución de llamada) fue una solución alternativa anterior a CORS para solicitudes de origen cruzado, pero es peligrosa: ejecuta scripts arbitrarios. Prefiera CORS con respuestas application/json reales (OWASP: Abuso de JSONP).JSON debutó bajo RFC 4627 (2006); el tipo de medio registrado es application/json, cuya especificación ahora apunta a RFC 8259. Los parámetros "charset" en las respuestas JSON son generalmente innecesarios porque UTF-8 es el predeterminado en la Internet pública.
Los desarrolladores a menudo quieren comentarios, comas finales o cadenas entre comillas simples en las configuraciones. Eso está fuera del JSON estándar, pero JSON5 proporciona un superconjunto bien documentado para archivos editados por humanos. Evite enviar JSON5 a través de API públicas a menos que controle ambos extremos.
El éxito de JSON proviene de una superficie pequeña, un amplio soporte de idiomas y un anillo de estándares adyacentes (punteros, parches, esquemas, secuencias) que cubren las realidades desordenadas de los sistemas distribuidos. Comprenda los fundamentos (sintaxis, codificación, números), apóyese en los estándares adyacentes correctos y seguirá pagando dividendos en todas las pilas y servicios (RFC 8259, ECMA-404, RFC 6901, RFC 6902, RFC 7386, JSON Schema, JTD, RFC 7464, NDJSON).
JSON (JavaScript Object Notation) es un formato ligero de intercambio de datos que es fácil de leer y escribir para los humanos y fácil de analizar y generar para las máquinas. Se usa ampliamente para transmitir datos en aplicaciones web.
Formatear JSON lo hace legible para los humanos al agregar la sangría y los saltos de línea apropiados. Esto es especialmente útil cuando se trabaja con datos JSON minificados o comprimidos, depuración o revisión de respuestas de API.
La validación JSON verifica si su cadena JSON se ajusta a la especificación JSON. Identifica errores de sintaxis como comas faltantes, corchetes sin cerrar o comillas inadecuadas, ayudándole a detectar errores temprano.
La vista de código muestra el JSON formateado como texto con resaltado de sintaxis, similar a como aparece en un editor de código. La vista de árbol presenta JSON como una estructura interactiva y plegable donde puede expandir y contraer objetos y matrices anidados.
¡Sí! Todo el formateo y validación de JSON ocurre completamente en su navegador. Sus datos nunca salen de su computadora, garantizando privacidad y seguridad completas.
Sí, puede cargar un archivo JSON usando el botón 'Abrir archivo'. La herramienta leerá el archivo y mostrará la salida formateada de inmediato.
Los errores comunes de JSON incluyen: comas faltantes entre pares clave-valor, uso de comillas simples en lugar de comillas dobles para cadenas, comas finales, corchetes o llaves sin cerrar y claves sin comillas.
Sí, use el botón 'Copiar' para copiar el JSON formateado a su portapapeles. Esto es útil para pegar el JSON limpio en su código o documentación.