Formateador de JSON
Embellece, minifica y valida JSON - y cuando no se pueda procesar, descubre exactamente dónde está el error.
Entrada
0 caracteresSalida
Embellece, minifica y valida JSON - y cuando no se pueda procesar, descubre exactamente dónde está el error.
El JSON que sale de un registro de API o un archivo de configuración suele ser una sola línea larga, y el JSON que no se puede analizar suele fallar en un punto que no puedes ver. Esto lo indenta para que puedas leerlo, lo minifica cuando lo necesitas compacto, y cuando está roto te indica la línea y la columna y te muestra esa línea.
La mayoría de las veces no estás aquí para hacer que el JSON se vea bonito, sino porque algo lo rechazó sin decir por qué. El analizador informa la línea, la columna y lo que esperaba, y la herramienta imprime esa línea junto con las dos que la rodean. Una coma que falta en la línea cuatrocientos de una configuración es una corrección de treinta segundos una vez que sabes dónde está.
JSON nunca ha permitido ninguno de los dos, pero los archivos que la gente realmente te entrega - tsconfig, la configuración de VS Code, cualquier cosa editada a mano - están llenos de ellos. Marcar la opción los elimina antes de analizar, y la herramienta indica entonces cuántos comentarios y cuántas comas eliminó. Es opcional y se informa con precisión porque un formateador que altera tu documento en silencio es peor que uno que lo rechaza.
No adivina lo que quisiste decir. Más allá de las dos eliminaciones anteriores, nada se repara: una llave sin cerrar, una clave entre comillas simples o una clave sin comillas se informa, no se reescribe. Ordenar claves y reindentar nunca reordena un array ni cambia una cadena. La siguiente sección enumera los pocos casos en que el resultado aún puede diferir de lo que pegaste.
Tu JSON se analiza y se vuelve a escribir, así que algunas cosas vuelven normalizadas. Los números se reescriben: 1.50 pasa a 1.5, 1E3 pasa a 1000.0 y -0 pasa a 0, y un decimal con más dígitos de los que caben en un float de 64 bits se redondea (0.1000000000000000055 pasa a 0.1). Los enteros se conservan exactos hasta 4.300 dígitos (los más largos se rechazan). Si un objeto repite una clave, solo se conserva el último valor, sin aviso. NaN, Infinity y -Infinity se aceptan y se mantienen aunque el JSON estándar (RFC 8259) no los permite, y un número demasiado grande para un float, como 1e400, sale como Infinity. Si algo de esto importa al sistema que vas a alimentar, compruébalo tú antes de fiarte de un resultado sin errores.
Se envía al servidor para analizarlo y se devuelve de inmediato en la misma respuesta. Nada se escribe en disco, se almacena en caché ni se registra, y el registro de uso conserva solo recuentos - tamaño, profundidad de anidamiento, el modo elegido - nunca el documento.
Normalmente por comentarios, comas finales, comillas simples o claves sin comillas - todo habitual en archivos de configuración y nada de ello JSON válido. Marca "permitir comentarios y comas finales" para los dos primeros; los demás son realmente inválidos y hay que corregirlos.
Hasta 2.000.000 de caracteres por solicitud; un texto más largo se rechaza indicando su longitud exacta. Para archivos de ese tamaño, una herramienta de línea de comandos como jq es el mejor instrumento.
Las canalizaciones de logs y los cargadores de streaming leen un objeto JSON por línea en lugar de un array grande. Seléccionalo y un array de nivel superior se devuelve como un registro compacto por línea.
No. El orden de las claves de un objeto no tiene significado en JSON, y el orden de un array - que sí lo tiene - nunca se toca. Ordenar existe para que dos versiones del mismo documento puedan compararse sin ruido.
En Excel para Microsoft 365, guárdalo como archivo .json y elige Data > Get Data > From File > From JSON (Datos > Obtener datos > Desde un archivo > Desde JSON). Se abre Power Query: una matriz de nivel superior aparece como List, To Table (A tabla) la convierte en una columna de Records, y el botón de expandir (dos flechas) del encabezado reparte cada clave en su propia columna; expandir una matriz anidada añade una fila por elemento. Power Query necesita un único documento JSON válido, así que corrige antes aquí cualquier error, con su línea y columna, y guarda la salida de Embellecer o Minificar; la salida JSON Lines es para herramientas de logs. Esta herramienta no convierte JSON a CSV ni a Excel por sí misma.
Python trae un validador: python -m json.tool data.json imprime el documento con sangría de 4 espacios o se detiene con un mensaje como Expecting ',' delimiter: line 3 column 3. Con jq instalado, jq . data.json lo formatea y jq empty data.json solo lo comprueba, sin imprimir nada si el archivo es válido. Ninguno acepta comentarios ni comas finales, así que un archivo de configuración que los tenga fallará; pégalo aquí y marca "Permitir comentarios y comas finales" para ver qué se eliminó.
El analizador esperaba una clave de objeto y encontró otra cosa. Lo habitual es que las claves usen comillas simples o ninguna, como en {'name': 'Asha'} copiado de Python o JavaScript, que se detiene en la línea 1, columna 2: JSON exige comillas dobles en cada clave y cada cadena, y esta herramienta nunca cambia las comillas, así que corrígelas tú. El mismo mensaje en una llave de cierre, como en {"a": 1,}, indica una coma final; marca "Permitir comentarios y comas finales" para quitarla. Expecting value en True, False o None indica valores de Python: JSON escribe true, false y null en minúsculas. En Python, json.dumps(data) produce JSON válido y print(data) no. Los errores se muestran tal como los redacta el analizador de Python, en inglés, para que puedas buscar el mensaje tal cual.
El analizador leyó un valor JSON completo y después encontró más texto. Causas habituales: un registro JSON Lines (NDJSON) con un objeto por línea, que se detiene en la línea 2, columna 1; dos documentos pegados uno detrás de otro; o un comentario // después de la última llave de cierre, que "Permitir comentarios y comas finales" elimina. Esta herramienta comprueba un documento cada vez, así que pega un solo registro o mete los registros dentro de [ ] separados por comas; al elegir JSON Lines se vuelven a escribir uno por línea.