Validador JSON
Valida JSON y muestra errores con detalle.
¿Qué hace válido a un JSON?
JSON (JavaScript Object Notation) es un formato de intercambio de datos con reglas sintácticas estrictas definidas en la RFC 8259. Para que un JSON sea válido debe cumplir estas reglas: todas las claves deben ser strings entre comillas dobles, los valores solo pueden ser strings, números, booleanos (true/false), null, arrays u objetos, no se permiten comas finales (trailing commas), no se admiten comentarios de ningún tipo, y los strings deben usar comillas dobles exclusivamente.
El valor raíz de un JSON válido debe ser un objeto ({}), un array ([]), un string, un número, true, false onull. Aunque históricamente solo se aceptaban objetos y arrays como raíz, la especificación actual permite cualquier valor JSON válido.
Errores más comunes en JSON y cómo corregirlos
Comas finales (trailing commas): escribir {"a": 1, "b": 2,} con una coma después del último elemento es válido en JavaScript, pero no en JSON. Elimina la coma después del último valor de cualquier objeto o array.
Comillas simples: usar {'nombre': 'Juan'} es un error frecuente al copiar desde código JavaScript o Python. JSON exige comillas dobles tanto en claves como en valores string: {"nombre": "Juan"}.
Claves sin entrecomillar: escribir {nombre: "Juan"} es válido en JavaScript pero no en JSON. Todas las claves deben estar entre comillas dobles.
Comentarios: ni // ni /* */ están permitidos en JSON estándar. Si necesitas comentarios en archivos de configuración, considera usar JSONC (JSON with Comments), que soportan editores como VS Code para archivos como tsconfig.json.
Valores no válidos: undefined, NaN,Infinity y funciones no existen en JSON. Usa null para representar ausencia de valor, y strings para valores especiales.
Depuración de JSON en respuestas de API
Cuando una API devuelve JSON que no se parsea correctamente, el problema puede estar en varios niveles. Primero, verifica que la respuesta realmente sea JSON y no HTML (una página de error del servidor). Segundo, comprueba que no haya un BOM (Byte Order Mark) al inicio del texto, un carácter invisible que rompe el parseo. Tercero, revisa que los caracteres de control dentro de los strings estén correctamente escapados.
Una técnica útil es abrir las DevTools del navegador, ir a la pestaña Network, encontrar la petición y revisar la respuesta en la pestaña Response. Si el navegador la muestra como JSON formateado, es válida. Si la muestra como texto plano, copia ese texto y pégalo en este validador para obtener el mensaje de error exacto con la posición del problema.
JSON Schema: validación estructural avanzada
Más allá de la validación sintáctica que ofrece esta herramienta, existe JSON Schema, un vocabulario que permite describir la estructura esperada de un documento JSON. Con JSON Schema puedes definir qué campos son obligatorios, qué tipo de dato debe tener cada campo, rangos de valores permitidos, patrones regex para strings, y relaciones entre campos.
JSON Schema es especialmente útil en APIs para documentar y validar automáticamente los payloads de las peticiones. Herramientas como AJV (JavaScript), jsonschema (Python) o Zod permiten validar datos contra un esquema definido, evitando errores en tiempo de ejecución y mejorando la robustez de tu aplicación.
Buenas prácticas con JSON en producción
En entornos profesionales, la validación de JSON no debería ser manual. Integra validación automática en tu flujo de trabajo: usa linters como jsonlint en tus hooks de pre-commit con Husky para evitar que JSON malformado llegue al repositorio. Configura tu CI/CD para validar archivos de configuración JSON antes del despliegue. Usa TypeScript o JSON Schema para validar las respuestas de APIs externas en tiempo de ejecución, en lugar de asumir que siempre serán correctas.
Para archivos de configuración, considera usar formatos como JSONC o JSON5 durante el desarrollo (que permiten comentarios y trailing commas) y compilarlos a JSON estándar para producción. Esto mejora la experiencia del desarrollador sin sacrificar la compatibilidad.
Preguntas frecuentes
Detecta todos los errores definidos por la especificación JSON (RFC 8259): comas faltantes o sobrantes, comillas incorrectas (simples en vez de dobles), llaves o corchetes sin cerrar, claves sin entrecomillar, valores no válidos como undefined, NaN o Infinity, comas finales después del último elemento, y comentarios (que no son parte del estándar JSON). Además, indica la línea y columna aproximada del error para facilitar la corrección.
Validar comprueba si el JSON cumple con la especificación sintáctica y te indica los errores encontrados. Formatear reorganiza un JSON válido con indentación y saltos de línea para hacerlo legible. La validación es el primer paso: si el JSON no es válido, no se puede formatear. Si necesitas ambas funciones, prueba nuestro formateador JSON que también valida automáticamente.
No. JSON (JavaScript Object Notation) es un subconjunto estricto de JavaScript con reglas más rígidas: las claves deben ir entre comillas dobles obligatoriamente, no se permiten comentarios, no se aceptan comas finales (trailing commas), no se pueden usar comillas simples, y solo se admiten tipos string, number, boolean, null, array y object. Un objeto JavaScript válido puede no ser JSON válido, lo cual es una fuente frecuente de errores.
Las causas más comunes son: la respuesta incluye un BOM (Byte Order Mark) al inicio del texto, el servidor devuelve HTML en vez de JSON (por ejemplo, una página de error 500), la respuesta está envuelta en un callback JSONP, hay caracteres de control no escapados en los strings, o el Content-Type del servidor no es application/json y tu código no está parseando la respuesta correctamente. Copia solo el body de la respuesta y pégalo en el validador para diagnosticar el problema exacto.
La validación sintáctica (lo que hace esta herramienta) comprueba que el JSON está bien formado según la especificación. JSON Schema va un paso más allá: define la estructura esperada de los datos, qué campos son obligatorios, qué tipos deben tener, valores mínimos y máximos, patrones regex, etc. Es como la diferencia entre comprobar que un texto está escrito en español correcto (sintaxis) y comprobar que el contenido del texto cumple ciertos requisitos (esquema).
La validación sintáctica solo garantiza que el JSON cumple la gramática del estándar (RFC 8259). No verifica que los datos tengan el shape que tu aplicación espera: campos obligatorios, tipos correctos, rangos numéricos, formatos de fecha o relaciones entre campos. Para esa segunda capa necesitas validación semántica con JSON Schema, Zod, Yup o similar. Un JSON con "edad": "treinta" pasa la validación sintáctica pero rompe cualquier código que asuma que edad es un número. Y como bonus, toda la validación sintáctica de esta herramienta ocurre en local con JSON.parse() nativo: tu JSON no sale del navegador y puedes validar configuraciones con credenciales sin preocuparte por filtraciones. Si necesitas explicación detallada del estándar, consulta la guía sobre JSON paso a paso.