Desarrollo web · Gratis · Sin registro
Formatear, minificar y validar JSON online
Da formato con dos espacios, crea una línea compacta o comprueba la sintaxis JSON sin subir el contenido.
Pega JSON para analizarlo con `JSON.parse()` y volver a generarlo con `JSON.stringify()`. Puedes formatear con dos espacios, minificar en una línea o validar y consultar el error del navegador. La herramienta acepta JSON estándar, no JavaScript, JSON5 ni comentarios. No repara errores y no valida un JSON Schema. Formatear puede alterar claves duplicadas y números fuera de la precisión segura de JavaScript.
🔒 El tratamiento se realiza en este navegador; tus datos no se envían a FunnyTools.
Usar la herramienta
Qué puedes hacer aquí
- Analizar JSON estándar con el parser nativo del navegador.
- Crear una versión legible con sangría de dos espacios.
- Minificar objetos y arrays válidos en una sola línea.
- Validar la sintaxis sin modificar el cuadro de entrada.
- Mostrar el mensaje del parser y, cuando existe posición, línea y columna en español.
Respuesta rápida: cómo formatear JSON y validarlo
Pega el documento y pulsa «Formatear» para obtener una versión con dos espacios por nivel. «Minificar» elimina el espacio estructural innecesario y produce una línea. «Validar» solo intenta analizar la entrada y responde que es válida o muestra un error. Los tres botones requieren sintaxis JSON estándar y dejan el original en el primer cuadro.
El parser no comprueba que los campos sean correctos para una API. `{"edad":-9}` puede ser JSON sintácticamente válido aunque la aplicación prohíba esa edad. Tampoco comprueba tipos, campos obligatorios, formatos o reglas de negocio. Para eso necesitas el contrato de la API o un JSON Schema y un validador compatible.
JSON válido no es cualquier objeto JavaScript
JSON admite objetos, arrays, cadenas entre comillas dobles, números, `true`, `false` y `null`. Las claves de objetos deben ir entre comillas dobles. Los comentarios, comas finales, comillas simples, claves sin comillas, `undefined`, funciones, `NaN` e `Infinity` no forman parte del formato. MDN señala expresamente que `JSON.parse()` lanza `SyntaxError` cuando el texto no es JSON válido.
Un valor raíz también puede ser una cadena, número, booleano o `null`; no tiene que ser siempre objeto o array. El espacio estructural permitido incluye tabulación, retorno de carro, salto de línea y espacio en lugares válidos. Un salto dentro de una cadena debe escaparse como `\n`. La herramienta no convierte JSON5, YAML, XML ni una respuesta HTTP completa con cabeceras.
- Válido: `{"activo":true,"items":[1,2],"nota":null}`.
- Inválido: `{activo: true}` porque la clave no lleva comillas dobles.
- Inválido: `{"a":1,}` por la coma final.
- Inválido: `// comentario` porque JSON no admite comentarios.
Qué cambia al formatear o minificar
La herramienta no inserta espacios sobre el texto original: primero crea un valor JavaScript y luego lo serializa de nuevo. Formatear usa `JSON.stringify(valor, null, 2)`; minificar usa `JSON.stringify(valor)`. La sangría o los saltos originales se pierden. El orden habitual de propiedades se conserva según las reglas del motor, pero no debes tratarlo como una firma byte a byte.
Los espacios dentro de cadenas se mantienen porque son datos. Los escapes pueden representarse de otra forma equivalente y los números pueden perder ceros no significativos: `1.0` puede salir como `1`. Si necesitas verificar una firma, hash, diff textual o formato contractual exacto, trabaja con los bytes originales; una representación semánticamente equivalente puede producir otra cadena.
Claves duplicadas y números grandes
JSON puede contener el mismo nombre de propiedad más de una vez en el texto, pero al analizarlo como objeto una clave posterior sustituye a la anterior. `{"estado":"nuevo","estado":"cerrado"}` termina con un único `estado`. Formatear o minificar borra esa evidencia. Si recibes datos de una fuente no confiable, revisa duplicados antes de usar el resultado como registro.
Los números se convierten al tipo `Number` de JavaScript. Los enteros por encima de `9.007.199.254.740.991` pueden perder precisión y cambiar al volver a serializarse. Identificadores largos, números de cuenta o secuencias deben llegar como cadenas entre comillas cuando se requiera exactitud. Esta página no implementa un parser decimal arbitrario ni BigInt para JSON.
Cómo interpretar el mensaje de error
El mensaje proviene de `JSON.parse()` y varía entre Chrome, Firefox, Safari y versiones del navegador. Cuando incluye una posición numérica, la página calcula una línea y columna aproximadas y las muestra con etiquetas españolas. Empieza cerca de ese punto y revisa la coma, comilla, dos puntos, corchete o llave anterior: el parser suele detectar el problema donde ya no puede continuar, no siempre donde comenzó.
Corrige una sola cosa cada vez y vuelve a validar. Para documentos extensos, reduce el caso hasta localizar el bloque o utiliza un editor con resaltado y árbol. La herramienta no marca caracteres en el cuadro, no repara automáticamente y no ofrece JSON Schema. Que el mensaje desaparezca confirma sintaxis, no significado, autorización ni compatibilidad con el receptor.
Privacidad y tratamiento de payloads
El análisis se ejecuta dentro de esta pestaña. FunnyTools no recibe el JSON para formatearlo y no guarda un historial. Los servicios generales de analítica o publicidad descritos en la política no incluyen el contenido del cuadro como parámetro. Sin embargo, evita pegar API keys, tokens, cookies, contraseñas, datos de clientes, expedientes o secretos empresariales.
Trabaja con un ejemplo anonimizado y reemplaza valores reales por marcadores. Un payload también puede contener datos en Base64 que siguen siendo recuperables. Mantén la fuente, compara el resultado y prueba una copia en un entorno seguro. No utilices un formateador como prueba de que el contenido es inocuo o puede compartirse.
Cómo utilizarla paso a paso
- Elimina secretos y pega una copia del JSON, no el único registro.
- Valida primero si necesitas confirmar sintaxis sin regenerar el texto.
- Formatea para lectura o minifica para una representación compacta.
- Revisa claves duplicadas, enteros largos, tipos, campos y escapes.
- Valida después contra el schema o contrato de la aplicación de destino.
Situaciones en las que resulta útil
- Leer una respuesta de API de una sola línea después de anonimizarla.
- Detectar una coma final en una configuración antes de guardarla.
- Minificar un ejemplo válido para un campo que exige una línea.
- Comprobar que una cadena raíz o `null` también son JSON válidos.
- Evitar formatear un identificador numérico largo hasta convertirlo en cadena.
Ejemplos completos
Configuración con coma final
El panel rechaza `{"activo":true,}`. El validador muestra un SyntaxError cerca del cierre; se retira la coma y después se comprueba el esquema de la integración.
Identificador de 18 dígitos
Un ID llega como número y puede superar la precisión segura. No se formatea como si fuera inocuo: se consulta el contrato y se cambia en origen a una cadena entre comillas.
Dos claves con el mismo nombre
Una carga incluye dos propiedades `estado`. Al parsear ganaría la última. Se corrige la fuente antes de formatear para no ocultar el problema ni escoger silenciosamente un valor.
Revisión editorial y de funcionamiento:
Cómo comprobar un JSON después de formatearlo
La salida legible no garantiza que el payload conserve precisión, carezca de claves duplicadas o cumpla el contrato de una API.
Protege secretos
Anonimiza tokens, cookies, contraseñas y datos personales antes de pegar una muestra.
Revisa pérdidas
Comprueba enteros largos, claves duplicadas, escapes y cambios de representación.
Valida el contrato
Usa el JSON Schema o documentación del receptor para tipos, campos y reglas.
Lista de comprobación
- La entrada no contiene secretos ni datos personales innecesarios.
- Los identificadores largos están representados como cadenas cuando corresponde.
- No hay claves duplicadas que el parser pueda ocultar.
- El resultado se probó contra el schema o sistema de destino.
Límites y comprobaciones importantes
- El botón validar comprueba sintaxis JSON, no JSON Schema ni reglas de negocio.
- Formatear usa dos espacios; no conserva sangría ni representación byte a byte.
- Las claves duplicadas pueden reducirse a la última aparición al analizar.
- Los enteros fuera del rango seguro de JavaScript pueden perder precisión.
- Los mensajes y posiciones de error dependen del navegador.
Preguntas frecuentes
¿Admite comentarios o comas finales?
No. Usa JSON estándar mediante `JSON.parse()`, no JSON5 ni JavaScript.
¿Validar comprueba un JSON Schema?
No. Solo confirma sintaxis. Los campos, tipos y reglas requieren el schema o contrato del destino.
¿Puede cambiar números grandes?
Sí. Los números se convierten a `Number`; enteros fuera del rango seguro pueden perder precisión al regenerarse.
¿Qué pasa con claves duplicadas?
Al analizar un objeto, la aparición posterior puede sustituir la anterior. Corrige la fuente antes de formatear.
¿La herramienta repara JSON inválido?
No. Muestra el error del navegador para evitar adivinar cambios en los datos.
¿El JSON se sube a FunnyTools?
No. El análisis y la serialización ocurren localmente en esta pestaña.
Privacidad y tratamiento local
El JSON se analiza y se vuelve a generar localmente. FunnyTools no recibe ni guarda el contenido pegado para formatearlo.
Uso responsable del resultado
No pegues credenciales ni datos sensibles. La validación solo cubre sintaxis y el parser puede modificar claves duplicadas o números fuera de la precisión segura.
Última revisión editorial: