En JavaScript, la forma habitual de validar JSON es intentar convertirlo con JSON.parse dentro de un bloque try/catch: si el texto es correcto, obtiene el objeto; si no, el método lanza una excepción que usted captura.
Cargando Validador de JSON…
Reproduce la comprobación de JSON.parse sin escribir código
Muestra la línea, la posición y el motivo de la excepción
Útil para entender por qué falla su bloque try/catch
Procesa el JSON en local, sin subirlo a ningún servidor
Coloca Validador de JSON en una entrada, documentación, intranet o portal escolar con un iframe. El procesamiento, la privacidad y los límites son los mismos que en la página completa.
Código de inserción
<iframe
src="https://www.fixtools.io/json/json-validator?embed=1&lang=es"
width="100%"
height="780"
frameborder="0"
style="border:0;border-radius:16px;max-width:900px;"
title="Validador de JSON by FixTools"
loading="lazy"
allow="clipboard-write"
></iframe>Atribución amable: aparece un pequeño enlace "Powered by FixTools" en el pie del embed.
En JavaScript no existe una función que devuelva verdadero o falso para indicar si una cadena es JSON válido. La técnica estándar consiste en aprovechar el método JSON.parse, que intenta convertir el texto en un valor de JavaScript. Si el texto respeta la especificación, el método devuelve el objeto, el arreglo o el valor correspondiente. Si encuentra cualquier error de sintaxis, lanza una excepción del tipo SyntaxError y detiene la conversión. Por eso la validación se envuelve en un bloque try/catch: en el try se llama a JSON.parse y, si todo va bien, se continúa con el resultado; en el catch se captura la excepción y se trata el caso de entrada no válida. Este patrón es la manera fiable y recomendada de comprobar JSON antes de trabajar con él.
Conviene evitar atajos que parecen validar pero no lo hacen. Comprobar si una cadena empieza por una llave o un corchete no garantiza nada, porque el interior puede estar mal formado. Usar expresiones regulares para verificar JSON es frágil y propenso a falsos positivos, ya que el formato admite anidamientos arbitrarios que una expresión regular no puede describir con fiabilidad. Tampoco conviene confiar en que un JSON venga siempre correcto por proceder de una fuente conocida, porque una edición manual, un truncamiento o un cambio en el origen pueden romperlo en cualquier momento. La única comprobación realmente equivalente a lo que hará su aplicación al deserializar es intentar la conversión con JSON.parse y observar si tiene éxito. Esta herramienta hace precisamente eso, de modo que su resultado coincide con el que obtendría en el código.
Cuando JSON.parse falla, la excepción SyntaxError incluye un mensaje que describe el problema y, en muchos motores, la posición dentro de la cadena donde se detectó. Ese mensaje varía según el navegador o el entorno de ejecución, pero siempre apunta al primer punto en el que el texto deja de ajustarse a la especificación. Interpretar esa información a mano puede ser incómodo, sobre todo si la posición se indica como un índice de carácter en una cadena larga. La herramienta le ahorra ese trabajo: ejecuta la conversión, captura el fallo y traduce la posición a una línea y una columna concretas dentro del documento, junto con el motivo. Así entiende de un vistazo por qué su bloque catch se está activando, sin tener que añadir mensajes de depuración ni recorrer la cadena manualmente.
Muchas excepciones al deserializar nacen de diferencias entre la sintaxis de objetos de JavaScript y la de JSON, que son parecidas pero no idénticas. En un objeto literal de JavaScript puede omitir las comillas de las claves, usar comillas simples o dejar una coma final, y el código sigue funcionando. En JSON nada de eso está permitido: las claves y las cadenas exigen comillas dobles, la coma final es un error y no caben comentarios ni valores como undefined. También son inválidos los números con ceros a la izquierda o un punto sin dígitos. Si copia un objeto escrito en código JavaScript y lo trata como JSON, es probable que falle por alguna de estas razones. La herramienta detecta cuál de ellas se ha producido y se lo indica, para que ajuste el texto al estándar.
La ventaja de comprobar el JSON aquí es que obtiene el mismo veredicto que daría JSON.parse sin montar un entorno ni escribir un solo archivo. No necesita abrir la consola del navegador, crear un bloque try/catch de prueba ni añadir registros temporales: pega el texto y la herramienta le dice si su código lanzaría una excepción con esa entrada. Además, todo el proceso ocurre en local, dentro del navegador, por lo que el JSON que está depurando, aunque contenga datos reales de su aplicación, nunca se envía a ningún servidor. Es una forma rápida de aislar si un fallo procede del dato o de la lógica: si la herramienta valida el texto pero su aplicación sigue fallando, el problema no está en el formato del JSON, sino en cómo lo usa después su código.
Pegue su cadena en el validador integrado y comprobará, sin escribir código, si JSON.parse la aceptaría o lanzaría una excepción.
Guía paso a paso para validar json en javascript con json.parse y try/catch:
Pegue el JSON que probaría en el código
Copie la cadena JSON que pasaría a JSON.parse en su aplicación y péguela en la herramienta, o cargue el archivo correspondiente. Así comprueba el mismo dato de entrada que manejaría su código, pero de forma aislada.
Ejecute la validación
Pulse validar para que la herramienta intente interpretar el texto igual que lo haría JSON.parse. Si la conversión tiene éxito, el JSON es válido; si no, se captura la excepción y se muestra toda su información relevante.
Lea el mensaje de error
Cuando la validación falla, revise la línea, la posición y el motivo. Es la misma clase de información que obtendría en el bloque catch de JavaScript, pero presentada de forma clara y localizada dentro del documento.
Corrija y confirme
Ajuste el JSON en el punto señalado, teniendo en cuenta las reglas del formato, y vuelva a validar. Cuando la herramienta lo marque como válido, sabrá que JSON.parse no lanzará una excepción con ese mismo texto en su código.
Situaciones comunes donde este enfoque marca la diferencia:
Entender por qué su try/catch captura un error
Si su bloque catch se activa y no sabe por qué, pegue aquí la misma cadena que pasa a JSON.parse. La herramienta le muestra la línea y el motivo exactos, algo que la excepción por sí sola no siempre deja claro.
Comprobar JSON antes de guardarlo en localStorage
Antes de serializar o recuperar datos de almacenamiento en el navegador, valide la cadena. Confirmará que JSON.parse la aceptará al leerla, y evitará que una entrada corrupta rompa la carga de estado de su aplicación web.
Revisar un objeto copiado desde código JavaScript
Al reutilizar un objeto literal de su código como JSON, es fácil arrastrar comillas simples o una coma final. Pegue el texto y la herramienta señalará esas diferencias con el estándar para que las corrija antes de usarlo.
Obtén mejores resultados con estas sugerencias de expertos:
No use eval para validar JSON
Interpretar JSON con eval es un riesgo de seguridad, porque ejecuta cualquier código que contenga la cadena. Use siempre JSON.parse dentro de try/catch, o compruebe el texto aquí, que aplica el mismo criterio sin ejecutar nada del contenido.
Recuerde que JSON.parse no valida contra un esquema
Que JSON.parse acepte una cadena solo significa que la sintaxis es correcta, no que los campos sean los que su código espera. Para comprobar la estructura y los tipos, valide además contra un esquema JSON que describa el formato previsto.
Aísle el dato antes de depurar la lógica
Cuando su aplicación falle al procesar JSON, valide primero la cadena de entrada aquí. Si resulta válida, descarta el formato como causa y puede centrar la depuración en la lógica que recorre el objeto ya deserializado.
Otras herramientas que podrían resultarte útiles:
Validar respuesta JSON de una API
Validar una cadena JSON
Corrector de error parse JSON
Validar una cadena de texto como JSON
Compruebe si una cadena de texto es JSON válido directamente en el navegador. Herramienta gratuita que indica la línea, la posición y el motivo del error.
Validar la respuesta JSON de una API antes de procesarla
Compruebe en el navegador si el cuerpo de una respuesta de API es JSON válido antes de procesarlo. Herramienta gratuita que señala la línea del error.
Localice y corrija un error de JSON.parse
Localice y entienda el error de JSON.parse: la posición exacta y el motivo del fallo. Herramienta gratuita en el navegador para corregir su JSON.
Linter de JSON online para detectar errores de sintaxis
Linter JSON online y gratuito que analiza su JSON en el navegador, detecta errores de sintaxis y le muestra la línea y la posición exactas del problema.
Valide su JSON sin instalar ningún software
Valide JSON sin descargar nada ni instalar extensiones. Herramienta gratuita que funciona en el navegador y valida su JSON de forma local.
Descubra qué hace inválido su JSON y cómo corregirlo
Descubra qué hace inválido su JSON y cómo corregirlo, gratis y en el navegador. La herramienta señala el fallo exacto y usted aplica el arreglo.
Abre Validador de JSON para revisar sus límites gratuitos y su método de procesamiento.
Abrir Validador de JSON →Nivel gratuito · Sin cuenta · Límites transparentes