Qué hace
JSON5 es una extensión de JSON pensada para archivos que escriben las personas a mano. Permite comentarios, comas finales, claves de objeto sin comillas, cadenas con comillas simples y algunos formatos numéricos más cómodos. Herramientas como Babel, algunos empaquetadores y muchas aplicaciones aceptan JSON5 o JSONC (JSON con comentarios, el que usan tsconfig.json y la configuración de VS Code) para su configuración.
Sin embargo, muchos analizadores, API y lenguajes solo aceptan JSON estricto. Este convertidor lee JSON5 o JSONC y genera JSON estándar que cualquier analizador acepta: todas las claves entre comillas dobles, sin comentarios, sin comas finales y con los números en formato decimal.
Cómo se usa
- Pega tu JSON5 o JSONC, sube un archivo
.json5,.jsonco.json, o pulsa Ejemplo. - Elige la Sangría: 2 o 4 espacios, o Compacto para una sola línea.
- Elige qué hacer con
InfinityyNaN: convertirlos ennull, convertirlos en cadenas o mostrar un error. - Copia o descarga el JSON.
Si la entrada tiene un error de sintaxis, el mensaje muestra la línea y la columna para que puedas ir directamente a él. El JSON normal también es JSON5 válido, así que puedes usar la herramienta para comprobar que un archivo se analiza bien y volver a sangrarlo.
Ejemplo
Esta configuración en JSON5:
// Server settings
{
host: 'localhost',
port: 0x1F90, // 8080
ratio: .5,
tags: ['api', 'v2',],
}
se convierte en este JSON estricto:
{
"host": "localhost",
"port": 8080,
"ratio": 0.5,
"tags": [
"api",
"v2"
]
}
Los comentarios se eliminan, las claves y las cadenas pasan a llevar comillas dobles, el número hexadecimal y el decimal sin parte entera se escriben en decimal, y las comas finales desaparecen.
Qué se convierte
- Se eliminan los comentarios de línea
//y de bloque/* */. - Las claves sin comillas como
porty las cadenas con comillas simples como'localhost'pasan a comillas dobles. - Las cadenas que continúan con una barra invertida al final de la línea se unen en una sola.
- Los hexadecimales (
0xFF), los puntos decimales iniciales o finales (.5,5.) y los signos más explícitos (+3) se convierten en números decimales normales. - Se quitan las comas finales de objetos y arrays.
- Si una clave aparece dos veces, gana el último valor, igual que en JavaScript.
Preguntas frecuentes
› ¿Qué diferencia hay entre JSON5 y JSONC?
JSONC es JSON con comentarios (y, en VS Code, comas finales). JSON5 va más allá: claves sin comillas, cadenas con comillas simples, cadenas de varias líneas, números hexadecimales, puntos decimales iniciales o finales, Infinity y NaN. JSON5 es un superconjunto de JSONC, así que esta herramienta lee ambos.
› ¿Se conservan los comentarios?
No. El JSON estándar no tiene sintaxis de comentarios, así que se eliminan. Si necesitas conservarlos, mantén el archivo JSON5 como fuente y genera el JSON a partir de él.
› ¿Qué pasa con Infinity y NaN?
El JSON estricto no puede representarlos. Por defecto se convierten en null, como hace JSON.stringify de JavaScript. También puedes convertirlos en cadenas o mostrar un error que indique la ruta exacta.
› ¿Se suben mis datos?
No. El análisis y la conversión se hacen por completo en tu navegador, así que los archivos de configuración con secretos nunca salen de tu dispositivo.