¿Qué es el formato de archivo JSON?
Los archivos con la extensión .json contienen datos almacenados en formato de texto plano, utilizando una notación derivada de un subconjunto de JavaScript, con codificación UTF-8. La descripción autorizada actual del formato es ECMA-404 e IETF RFC 8259 (2017), que sustituyó al anterior RFC 4627. Entre otros usos, .json se utiliza ampliamente para transferir información a través de redes y para almacenar configuraciones, ajustes y el estado serializado de aplicaciones.
Un documento .json puede contener:
- Cadenas de texto (Strings),
- Números (punto flotante de doble precisión IEEE 754),
- Valores booleanos (
trueyfalse), null,- Matrices (Arrays) de los elementos anteriores,
- Objetos (mapas de clave-valor).
Los objetos y las matrices pueden anidarse en múltiples niveles. Aunque la sintaxis de los archivos .json se basa en JavaScript, se utilizan dentro de aplicaciones escritas en prácticamente todos los lenguajes de programación. En JavaScript, el análisis (parsing) y la serialización se gestionan mediante los métodos integrados JSON.parse() y JSON.stringify(), disponibles desde ECMAScript 5 - no se requiere ninguna biblioteca externa. El formato no admite comentarios. Otros formatos de datos basados en texto relacionados incluyen YAML, XML y CSV.
Seguridad y protección
RIESGO: LOWUn archivo JSON son puros datos: no puede contener ni ejecutar código, por lo que abrir uno en un editor es seguro. Los riesgos son informativos: las exportaciones de datos a menudo contienen datos privados, claves de API o tokens de sesión (no pegue tales archivos en visores en línea ni los comparta); y para los desarrolladores, analizar JSON no confiable con eval() en lugar de JSON.parse(), o archivos de tamaño excesivo utilizados para denegación de servicio, son trampas clásicas. Tenga cuidado con las extensiones dobles (.json.exe) en las descargas.
Detalles del formato
en pocas palabrasProgramas que abren archivos JSON
Detalles técnicos
especificación profunda| Tipo MIME | application/json |
| Codificación de caracteres | UTF-8; RFC 8259 exige UTF-8 sin BOM para el intercambio en red |
| Firma de archivo (magic bytes) | Ninguna - texto plano; un documento válido comienza con «{» (objeto) o «[» (matriz), opcionalmente precedido por espacios en blanco |
| Tipos de datos admitidos | string, number, boolean (true/false), null, array, object |
| Representación de números | Punto flotante de doble precisión (64 bits) IEEE 754; la especificación no define un tipo de entero distinto |
| Codificación de cadenas | Unicode; los caracteres no ASCII pueden aparecer como UTF-8 literal o como secuencias de escape de cuatro dígitos hexadecimales \uXXXX |
| Soporte de comentarios | Ninguno - los comentarios están explícitamente excluidos de la especificación JSON |
| Espacios en blanco | Los espacios en blanco insignificantes (espacio, tabulación, CR, LF) están permitidos entre cualquier par de tokens |
| Manejo de BOM | La norma RFC 8259 prohíbe explícitamente un BOM UTF-8 al inicio de un documento de intercambio JSON |
| Unicidad de claves de objeto | Las claves dentro de un objeto deben ser únicas; RFC 8259 no prohíbe los duplicados pero deja el comportamiento definido por la implementación |
| Anidamiento | Anidamiento recursivo ilimitado de objetos y matrices; la profundidad práctica está limitada por el tamaño de la pila del analizador |
| API de JavaScript integrada | JSON.parse() y JSON.stringify() son nativos desde ECMAScript 5 (2009); no se necesita ninguna biblioteca de terceros |
| Interoperabilidad | Independiente del lenguaje; existen analizadores y serializadores para prácticamente todos los lenguajes de programación importantes |
| Usos comunes | Cargas útiles de REST API, archivos de configuración de aplicaciones, serialización de datos, líneas de registro en streaming (JSONL / NDJSON), manifiestos de aplicaciones web |
| Lanzado | 2001 (json.org); first IETF spec RFC 4627 (2006); current RFC 8259 / ECMA-404 (2017) |
| Estándar abierto | Sí · libre de regalías |
| Especificación | www.rfc-editor.org |
Conversiones de JSON
Preguntas y respuestas de la comunidad
preguntado por usuariosAún no hay preguntas; sea el primero en preguntar sobre los archivos JSON.