En este artículo
Que es JSON5?
JSON5 es un superconjunto de JSON que agrega caracteristicas inspiradas en la sintaxis de ECMAScript 5.1. Fue creado para hacer JSON mas amigable para archivos de configuracion y otros casos donde las personas escriben y leen JSON manualmente. Todo documento JSON valido es tambien JSON5 valido, pero JSON5 agrega comentarios, comas finales, claves sin comillas y otras comodidades.
La especificacion 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 configuracion JSON5. Convertir JSON5 a JSON estandar es necesario al interoperar con sistemas que solo entienden JSON estricto, como APIs, bases de datos y la mayoria de los lenguajes de programacion.
Caracteristicas de JSON5 explicadas
JSON5 agrega varias extensiones de sintaxis que hacen los archivos de configuracion mas faciles de escribir y mantener.
- Comentarios — se permiten comentarios de una linea (//) y multilinea (/* */), haciendo los archivos de configuracion autodocumentados
- Comas finales — los arrays y objetos pueden tener una coma despues del ultimo elemento, reduciendo el ruido en los diffs
- Claves sin comillas — las claves de objeto que son identificadores ECMAScript validos no necesitan comillas
- Numeros hexadecimales — los valores numericos pueden escribirse como 0xFF, util para codigos de color en la configuracion
- Cadenas multilinea — los valores de cadena pueden abarcar multiples lineas usando continuacion 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 configuracion son escritos y mantenidos por desarrolladores.
- Babel — los archivos .babelrc y babel.config.json5 soportan sintaxis JSON5 para configuracion de build con comentarios
- TypeScript — tsconfig.json soporta caracteristicas JSON5 como comentarios y comas finales (tecnicamente JSONC)
- Chrome DevTools — los perfiles de limitacion de red y otras configuraciones usan formato JSON5
- Next.js — los archivos de configuracion aceptan JSON5 para una configuracion amigable con documentacion en linea
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 aplicacion Node.js, necesitas el paquete npm json5. Las herramientas de build que soportan JSON5 manejan el analisis 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, numeros 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 pequenas adiciones ergonomicas. YAML es un formato completamente diferente con estructura basada en espacios en blanco, anclas y muchas mas caracteristicas. JSON5 es mas facil de convertir a JSON porque es un superconjunto estricto. La conversion de YAML a JSON puede tener perdidas porque YAML soporta tipos de datos que JSON no tiene.