Formateador y Validador JSON
Analizar / Pretty Print / Minificar / Validar / Escape / Unescape
¿Qué es un formateador de JSON?
Un formateador de JSON añade sangría y saltos de línea a un JSON comprimido para que sea legible y editable. Ya sea una respuesta de API densa, un archivo de configuración compacto o un fragmento de JSON en los registros, el formato hace que la estructura y cada campo sean claros al instante. Tras formatear, usa nuestra Herramienta de Compresión JSON para eliminar los espacios; combínala con la Herramienta de Prueba HTTP para enviar peticiones y con el Convertidor de Marcas de Tiempo para leer las marcas Unix dentro de los campos. También puedes imprimir con formato localmente con json.dumps(indent=2) de Python o JSON.stringify(obj, null, 2) de JavaScript, pero esta herramienta funciona en tu navegador sin configuración.
Casos de uso habituales
Depuración de API: las respuestas JSON del backend suelen comprimirse en una sola línea. Péguelas aquí para revelar la estructura y los valores y, a continuación, use la Herramienta de Prueba HTTP para rastrear problemas más rápido. Edición de configuración: formatee package.json, tsconfig.json y archivos similares antes de editarlos para detectar comas faltantes o corchetes sin cerrar. Análisis de registros: formatee fragmentos JSON de los registros para localizar rápidamente campos anómalos y mensajes de error. Migración de datos: exporte JSON desde una base de datos NoSQL, valide aquí la integridad de los campos y luego comprima con la Herramienta de Compresión JSON antes de importarlo al sistema de destino.
Cómo usar esta herramienta
Pegue su JSON en el cuadro de entrada izquierdo, elija sangría de 2 o 4 espacios y haga clic en Formatear para imprimir con formato. Haga clic en Comprimir para eliminar todos los espacios en blanco y producir un JSON de una sola línea. Cambie a la vista de árbol para explorar estructuras anidadas con controles de expansión/contracción. Puede copiar el resultado al portapapeles o descargarlo como un archivo .json. Si la entrada no es un JSON válido, la herramienta resalta la línea y columna exactas para que pueda corregirlo rápidamente.
Consejos y técnicas de conversión
¿Cómo convierto JSON a TypeScript / Java / Go?
Al integrar API, asignar una respuesta JSON a definiciones de tipo ahorra tiempo. Primero formatee y valide el JSON aquí para no llevar estructuras inválidas a sus tipos. Luego asigne los campos: TypeScript usa string, number, boolean, los objetos anidados se convierten en interface y los arrays usan el tipo del elemento; Java se asigna a campos POJO; Go se asigna a campos struct, recordando exportar los campos con la primera letra en mayúscula. Dos errores comunes: los enteros de más de 16 dígitos superan el rango seguro de enteros de JavaScript, así que defínalos como string o bigint; y los campos opcionales de la API deben marcarse como opcionales (?).
¿Cómo convierto JSON a XML / YAML / CSV?
Estos formatos tienen distinta capacidad de expresión, así que compruebe la compatibilidad estructural antes de convertir:
- JSON → XML: asigne pares clave-valor a etiquetas y arrays a etiquetas repetidas; escape
<,&y>como entidades XML. - JSON → YAML: YAML 1.2 es un superconjunto de JSON, por lo que la mayoría de los analizadores pueden leer JSON directamente; al convertir en sentido contrario, recuerde que YAML es sensible a la sangría.
- JSON → CSV: esto solo funciona para un array plano de objetos, donde las claves se convierten en encabezados; los objetos anidados deben aplanarse primero (por ejemplo,
{"a":{"b":1}}se convierte en la columnaa.b). - Valide antes y después: confirme que el JSON es válido aquí y luego valide el formato de destino tras la conversión para evitar perder escapes o precisión numérica.
¿Cómo ordeno las claves JSON?
Las claves ordenadas hacen que los ejemplos de documentación de API sean ordenados y los diffs entre respuestas sean más claros. En JavaScript, una ordenación recursiva de una línea es: const sortKeys = o => Array.isArray(o) ? o.map(sortKeys) : Object.fromEntries(Object.keys(o).sort().map(k => [k, sortKeys(o[k])])). Tenga en cuenta que el estándar JSON (RFC 8259) no garantiza el orden de las claves; los analizadores modernos de JS y Python 3.7+ conservan el orden de inserción como detalle de implementación. La ordenación es solo para legibilidad y comparación; no dependa de ella en la lógica de negocio.
¿Por qué los números largos terminan en 0 tras formatear?
La mayoría de los formateadores JSON en línea, incluido este, se basan en JSON.parse, que analiza los números como flotantes de doble precisión IEEE 754. El límite de enteros seguros es 253-1 (16 dígitos, 9007199254740991). Los números de 17 o más dígitos (ID de pedidos, ID Snowflake, ID de usuario de plataformas sociales) pueden perder precisión en silencio y terminar en 0. Pruébelo: pegue {"id":12345678901234567890} y formatee. La solución recomendada es serializar los ID largos como cadenas en la capa de transporte (por ejemplo, anotaciones de serialización de cadenas en Java o la biblioteca json-bigint en JS), o usar un analizador sin pérdida que preserve el texto original. Pasar los ID largos como cadenas es el estándar de la industria.
Errores de sintaxis JSON comunes
Si el formato falla, probablemente esté encontrando uno de estos problemas comunes. Esta herramienta informa la línea y columna exactas para que pueda corregirlo rápidamente:
- Claves sin comillas:
{name: "x"}debe ser{"name": "x"}: las claves JSON deben ser cadenas entre comillas dobles. - Comillas simples: las cadenas JSON usan solo comillas dobles; cambie
'hello'por"hello". - Comas finales: el último elemento no debe ir seguido de una coma, por lo que
[1, 2,]no es válido. - Comentarios: el JSON estándar no admite
//ni/* */; esta herramienta puede eliminar los comentarios antes de formatear. - Mayúsculas en boolean/null: use minúsculas
true,falseynull.
¿Qué hago si los caracteres chinos aparecen como \uXXXX?
Al pegar JSON, los caracteres chinos pueden aparecer como secuencias \uXXXX (por ejemplo, \u7b80\u7f8e para 简美). No es corrupción: es un escape Unicode que usa \u seguido de cuatro dígitos hexadecimales. Normalmente ocurre porque la API forzó una salida segura ASCII o porque la cadena se serializó de esa forma.
Para restaurar el texto legible, pegue el texto en esta herramienta y haga clic en Formatear. La implementación estándar de JSON.parse convierte automáticamente \uXXXX de vuelta a los caracteres originales. Si necesita lo contrario (convertir texto legible a escapes \u para sistemas heredados), esta herramienta también admite el escape. Ejemplos:
{"name":"\u7b80\u7f8e\u5de5\u5177"}se formatea a{"name":"简美工具"}.- Si ve una larga cadena de caracteres
\u, probablemente esté doblemente escapada; formatee capa por capa. - Al depurar chinos "garabateados", confirme primero si se trata de escape Unicode (
\uXXXX) o de un problema de codificación real como UTF-8 interpretado como GBK.
Los navegadores modernos y la mayoría de los lenguajes (incluido JSON.stringify de JavaScript) conservan los caracteres chinos tal cual por defecto y solo los escapan a \u cuando se requiere seguridad ASCII. Esta herramienta muestra ambas formas para que pueda coincidir con la especificación de interfaz que necesite.
Preguntas frecuentes
¿El formato cambia mis datos?
No. El formato JSON solo ajusta la sangría, los saltos de línea y los espacios en blanco. No cambia ninguna clave, valor ni estructura de datos, por lo que el significado semántico se mantiene idéntico antes y después del formato.
¿Es seguro este formateador JSON? ¿Se filtrarán mis datos?
Sí, es seguro. Todo el formato, la compresión y la validación se ejecutan completamente en su navegador. Sus datos nunca se suben a ningún servidor.
¿Cuál es la diferencia entre formatear y comprimir?
Formatear añade sangría y saltos de línea para hacer el JSON legible. Comprimir elimina todos los espacios y saltos de línea para producir una sola línea compacta, reduciendo el tamaño del archivo para su transmisión. Esta herramienta admite ambos: simplemente cambie la sangría o haga clic en el botón Comprimir.
¿Qué errores detecta el validador?
Los errores comunes incluyen corchetes o comillas sin cerrar, comas faltantes o sobrantes, claves sin comillas, comentarios (no permitidos en JSON estándar) y comas finales. La herramienta indica la línea y columna exactas para ayudarle a corregir el problema rápidamente.
¿Cuál es la diferencia entre la vista de árbol y la vista de texto?
La vista de árbol muestra el JSON como nodos plegables, ideal para explorar datos anidados complejos rápidamente. La vista de texto muestra el texto sin formato, mejor para copiar o comparar línea por línea. Puede alternar entre ambas en cualquier momento, y la vista de árbol admite plegar/desplegar con un clic.
¿En qué difiere el formato JSON del formato XML?
JSON usa llaves y corchetes para expresar la jerarquía, mientras que XML usa etiquetas anidadas. JSON es más compacto y eficiente de transmitir, lo que lo convierte en el formato estándar de las API web modernas. Esta herramienta se centra en el formato y la validación JSON, incluida la eliminación de comentarios y el manejo de escapes, y también puede comprimir JSON en un formato compacto de una sola línea.
¿Qué hago si un archivo JSON grande se traba?
Si el archivo JSON es mayor de 1 MB, compruebe si contiene espacios en blanco o comentarios innecesarios. El JSON de menos de 500 KB normalmente se formatea al instante en el navegador. Puede mejorar la velocidad comprimiendo primero y luego formateando. Para exportaciones muy grandes, como volcados de bases de datos, divida la entrada o preprocese con la herramienta de línea de comandos jq.
¿Cuál es la diferencia entre arrays y objetos JSON y cómo los formateo?
Los objetos JSON usan llaves {} para contener pares clave-valor donde cada clave debe ser una cadena entre comillas dobles. Los arrays JSON usan corchetes [] para contener una lista ordenada de valores que pueden ser cadenas, números, booleanos, objetos o arrays. Esta herramienta formatea tanto objetos como arrays, admite la expansión en vista de árbol y muestra cada elemento del array en su propia línea para una fácil verificación.
¿Cómo restauro caracteres chinos desde escapes \uXXXX?
Esa es una secuencia de escape Unicode. Por ejemplo, "\u7b80\u7f8e" es 简美. No es texto corrupto: es el carácter chino codificado como \u más cuatro dígitos hex. Esta herramienta lo analiza con JSON.parse estándar y restaura el chino original automáticamente. Si solo ve una larga cadena de caracteres \u, puede estar doblemente escapada; péguela aquí y formatee capa por capa.
¿Se garabatearán los caracteres chinos tras formatear? ¿Necesito escaparlos?
No se garabatearán y no necesita escaparlos manualmente. Los navegadores modernos y la mayoría de los lenguajes, incluido JSON.stringify de JavaScript, conservan los caracteres chinos tal cual por defecto y no los fuerzan en escapes \uXXXX. Escápelos solo cuando el sistema receptor lo requiera explícitamente. Esta herramienta le permite ver ambas formas para coincidir con la especificación requerida.
¿Cómo encuentro un campo dentro de un archivo JSON de decenas de miles de líneas?
Use dos enfoques juntos: primero pliegue capas en la vista de árbol para reducir el alcance, o use Ctrl+F en la vista de texto para encontrar el nombre del campo. Una vez que conoce la ruta, construya una expresión JSONPath como $.store.book[0].title y use una biblioteca JSONPath en su código o consola del navegador para extraer el valor. Se recomienda encarecidamente formatear primero, porque encontrar campos en un JSON compacto de una sola línea es casi imposible.
¿Se puede convertir JSON a Excel o SQL?
Un array de objetos es ideal para CSV o Excel, donde las claves se convierten en encabezados de columna y cada objeto en una fila. Convertir a SQL normalmente significa generar sentencias CREATE TABLE o INSERT a partir del JSON, lo que requiere aplanar primero las estructuras anidadas. Cualquiera que sea la conversión, formatee y valide el JSON aquí primero y confirme los tipos de campo para evitar importar datos sucios.