En este artículo
Que es JSON5?
JSON5 es un superconjunto de JSON que agrega características inspiradas en la sintaxis de ECMAScript 5.1. Fue creado para hacer JSON mas amigable para archivos de configuración y otros casos donde las personas escriben y leen JSON manualmente. Todo documento JSON valido es también JSON5 valido, pero JSON5 agrega comentarios, comas finales, claves sin comillas y otras comodidades.
La especificación JSON5 fue finalizada en 2018 y es ampliamente adoptada en las herramientas de JavaScript. Herramientas de build como Babel, Next.js y Webpack aceptan archivos de configuración JSON5. Convertir JSON5 a JSON estandar es necesario al interoperar con sistemas que solo entienden JSON estricto, como APIs, bases de datos y la mayoría de los lenguajes de programación.
Características de JSON5 explicadas
JSON5 agrega varias extensiones de sintaxis que hacen los archivos de configuración mas fáciles de escribir y mantener.
- Comentarios — se permiten comentarios de una línea (//) y multilinea (/* */), haciendo los archivos de configuración autodocumentados
- Comas finales — los arrays y objetos pueden tener una coma después del ultimo elemento, reduciendo el ruido en los diffs
- Claves sin comillas — las claves de objeto que son identificadores ECMAScript validos no necesitan comillas
- Números hexadecimales — los valores numericos pueden escribirse como 0xFF, util para códigos de color en la configuración
- Cadenas multilinea — los valores de cadena pueden abarcar multiples líneas usando continuación con barra invertida
- Valores numericos especiales — Infinity, -Infinity y NaN son literales numericos validos en JSON5
Pruébalo gratis — sin registro
Convertir JSON5 a JSON →Donde se usa JSON5
JSON5 se usa principalmente en las herramientas del ecosistema JavaScript donde los archivos de configuración son escritos y mantenidos por desarrolladores.
- Babel — los archivos .babelrc y babel.config.json5 soportan sintaxis JSON5 para configuración de build con comentarios
- TypeScript — tsconfig.json soporta características JSON5 como comentarios y comas finales (tecnicamente JSONC)
- Chrome DevTools — los perfiles de limitación de red y otras configuraciones usan formato JSON5
- Next.js — los archivos de configuración aceptan JSON5 para una configuración amigable con documentación en línea
Preguntas frecuentes
Pueden los navegadores analizar JSON5 nativamente?
No. Los navegadores solo soportan JSON estandar via JSON.parse(). Para analizar JSON5 en un navegador o aplicación Node.js, necesitas el paquete npm json5. Las herramientas de build que soportan JSON5 manejan el análisis internamente durante su paso de build.
Cual es la diferencia entre JSON5 y JSONC?
JSONC (JSON con comentarios) solo agrega soporte de comentarios a JSON. JSON5 es un superconjunto mas amplio que agrega comentarios, comas finales, claves sin comillas, números hexadecimales, cadenas multilinea y valores numericos especiales. El tsconfig.json de TypeScript y settings.json de VS Code usan JSONC, mientras que Babel y otras herramientas usan JSON5 completo.
Es JSON5 lo mismo que YAML?
No. JSON5 se mantiene cerca de la sintaxis JSON con pequeñas adiciones ergonomicas. YAML es un formato completamente diferente con estructura basada en espacios en blanco, anclas y muchas mas características. JSON5 es mas fácil de convertir a JSON porque es un superconjunto estricto. La conversión de YAML a JSON puede tener perdidas porque YAML soporta tipos de datos que JSON no tiene.