Cómo usarlo
Pega tu JSON en el cuadro de entrada y el resultado aparece. Elige «Formatear» para aplicar sangría (2 espacios, 4 espacios o un tabulador) y ver la estructura de un vistazo, o «Minificar» para eliminar todos los espacios y saltos de línea innecesarios y reducir el tamaño. «Validar» comprueba la sintaxis sin cambiar nada. Activa «Ordenar claves» para ordenar de forma recursiva las claves de cada objeto en orden alfabético (más exactamente, por unidad de código Unicode), y «Escapar caracteres no ASCII» para convertir emojis o letras con tilde en secuencias \uXXXX. Si el JSON que pegaste no es válido, en lugar del resultado verás un error con la línea y columna exactas del problema y un pequeño fragmento del texto de alrededor.
Formatear, minificar y validar son tres tareas distintas
Los tres modos trabajan sobre el mismo JSON, pero con propósitos diferentes. «Formatear» añade sangría y saltos de línea para que una persona pueda leer el documento con facilidad; «Minificar» hace lo contrario, eliminando esos espacios para reducir el tamaño del archivo. Ninguno de los dos cambia los valores reales, salvo las excepciones descritas más abajo en «Los números grandes pueden perder precisión» (un número fuera de rango se convierte en null, una clave duplicada conserva solo su último valor), y una más: un -0 en la entrada se convierte en 0 en la salida. «Validar» no sirve para mostrar nada, sino solo para comprobar si el JSON es sintácticamente correcto. Los tres modos pasan internamente por el mismo analizador, así que formatear o minificar con éxito ya es en sí mismo la prueba de que el JSON era válido.
Errores de sintaxis JSON habituales
La gramática de JSON es sencilla, pero estricta con los detalles. Los problemas más frecuentes son una coma sobrante tras el último elemento de un array u objeto (coma final, por ejemplo [1, 2, 3,]), cadenas o claves entre comillas simples en vez de dobles (JSON solo admite comillas dobles), claves de objeto sin comillas ({name: "a"}), comentarios // o /* */ que quedaron al editar, un cero inicial en un número (01), y confundir con JSON un objeto literal de JavaScript, que puede tener valores undefined o comas finales. Activar «Permitir comentarios y comas finales» limpia automáticamente los comentarios y las comas finales antes de analizar el texto, pero otros errores de sintaxis, como las comillas simples o las claves sin comillas, hay que corregirlos a mano.
JSON frente a JSON5 y JSONC
«JSON» es el estándar estricto definido por RFC 8259 y ECMA-404: sin comentarios, sin comas finales, y las cadenas deben ir entre comillas dobles. «JSON5» y «JSONC» (JSON with Comments, conocido por archivos de configuración de editores como el settings.json de VS Code) son dialectos más permisivos, pensados para escribirse a mano más cómodamente, que permiten comentarios, comas finales y, a veces, claves sin comillas. Esta herramienta comprueba JSON estándar por defecto, pero al activar «Permitir comentarios y comas finales» acepta las costumbres más comunes de JSON5/JSONC —comentarios y comas finales— eliminándolas antes de analizar el texto. Esa opción está diseñada para no tocar los // ni las comas que estén dentro de valores de cadena.
Los números grandes pueden perder precisión
JavaScript tiene un único tipo numérico, un número de coma flotante de doble precisión IEEE 754, que solo puede representar enteros con exactitud hasta 2^53 - 1 (9007199254740991, 16 dígitos). Si un documento JSON contiene un literal entero más largo —por ejemplo, un ID snowflake de 64 bits que usan algunos sistemas—, JSON.parse lo redondeará al valor representable más cercano, cambiando silenciosamente las últimas cifras sin lanzar ningún error. Esta herramienta busca en el texto original, antes de analizarlo, literales enteros de 16 dígitos o más y solo muestra un aviso, sin alterar el valor (convertirlo, por ejemplo, en una cadena de texto cambiaría la forma de tu documento). Si necesitas conservar el valor exacto, guárdalo como cadena de texto desde el origen, o usa una herramienta pensada específicamente para manejar enteros grandes.
Hay otros dos casos en los que los valores cambian sin ningún error, y la herramienta avisa de ambos. Un número demasiado grande para un double, como 1e400, se lee como Infinity y pasa a ser null en el resultado. Y si la misma clave aparece más de una vez en un objeto, JSON.parse conserva solo el último valor y descarta los anteriores sin avisar.
Privacidad
El JSON que pegas se procesa por completo en esta pestaña del navegador y nunca se guarda ni se transmite a ningún sitio. Al cerrar la página, el contenido desaparece.