JSON Toolkit

JSON vs JSON5 vs JSONC

En resumen: Superconjuntos estrictos en orden: JSONC añade comentarios; JSON5 añade comillas simples, claves sin comillas, comas finales y números hexadecimales. Elegir mal rompe una API, no tu editor.

Principiante~4 min de lecturaPublicado el 2026-10-30Actualizado el 2026-10-30
Comparación de características entre JSON, JSON5 y JSONC

En resumen: usa JSON estándar siempre que los datos crucen una frontera entre sistemas, y usa JSONC solo para configuración local que editan personas; recurre a JSON5 cuando necesites comillas simples, comas finales o claves sin comillas, pero confirma antes que el cargador lo admite.

En una línea: JSONC es JSON más comentarios; JSON5 es JSON más costumbres de JavaScript.

Matriz de características

Característica JSON JSONC JSON5
Cadenas entre comillas dobles ✅ ✅ ✅
Cadenas entre comillas simples ❌ ❌ ✅
Claves sin comillas ❌ ❌ ✅
Comentarios de línea // ❌ ✅ ✅
Comentarios de bloque /* */ ❌ ✅ ✅
Comas finales ❌ ❌ ✅
Números hexadecimales 0xFF ❌ ❌ ✅
Infinity / NaN ❌ ❌ ✅
Cadenas de varias líneas ❌ ❌ ✅
Legible por analizadores estándar ✅ ❌ ❌

Ten en cuenta que JSONC solo resuelve los comentarios. Mucha gente asume que «JSON que admite comentarios» también admite comas finales; tsconfig.json sigue fallando con una.

Para qué sirve cada uno

JSON — intercambio. APIs, colas, columnas JSON de base de datos, logs. Todo lo que va de máquina a máquina.

JSONC — configuración de editor. VS Code analiza estos archivos por sí mismo, así que JSON.parse nunca los ve. No hay RFC; es una convención de facto liderada por Microsoft.

JSON5 — un superconjunto indulgente para humanos. El objetivo era «configuración que parece un literal de objeto de JavaScript». El más adecuado para archivos .json5 cargados por herramientas de compilación; la sintaxis más amplia y el soporte de herramientas más estrecho.

Elegir

Situación Elección
Cuerpos de petición o de respuesta JSON, sin alternativa
Columnas JSON en MySQL / PostgreSQL JSON, sus funciones no aceptan otra cosa
Configuración de proyecto que necesita explicaciones JSONC si se admite, si no YAML
Quieres la laxitud estilo JS JSON5, después de confirmar que el cargador lo admite
Lo van a editar personas no técnicas YAML, la indentación gana a las llaves

Una trampa fácil

Analizar un archivo JSONC como JSON estricto produce un error que apunta al comentario:

SyntaxError: Unexpected token / in JSON at position 42

Antes de borrar el comentario, comprueba si el archivo está pensado para ser JSONC. Si lo borras, puede que aún te topes con una coma final dos líneas más abajo.

FAQ

¿Cómo debo elegir entre JSONC y JSON5?

Usa JSONC cuando los comentarios sean lo único que necesitas: añade // y /* */ sobre JSON, y el settings.json y el tsconfig.json de VS Code lo usan. Usa JSON5 cuando además quieras comillas simples, claves sin comillas, comas finales, números hexadecimales o cadenas de varias líneas. Ambos dependen del cargador, así que confirma que la herramienta que lee el archivo lo admite.

¿Por qué no se puede leer un archivo JSONC como JSON estándar?

JSONC es una convención de facto, no una RFC aparte, así que los analizadores estándar rechazan los comentarios. JSON.parse sobre un archivo así lanza Unexpected token /, apuntando al comentario en lugar de a los datos. Solo la configuración que lee un editor o un analizador dedicado debería escribirse como JSONC.

¿Debería enviar un archivo JSON5 a una API?

No. Las APIs, las columnas JSON de base de datos y las colas analizan JSON estricto, así que las comillas simples, las claves sin comillas y las comas finales de JSON5 se rechazan. JSON5 es para configuración local que editan personas; conviértelo a JSON estándar antes de que cruce una frontera entre sistemas.

Lectura adicional