tools / json
json/
Formatea, minifica, valida y escapa JSON y ordena sus claves, con validación en vivo mientras escribes.
Entrada
Resultado
Preguntas frecuentes
¿Qué hago si la validación dice «Unexpected token» o «JSON no válido»?
Casi siempre el texto es un literal de JavaScript o de Python y no JSON estándar. Causas típicas: comillas simples, claves sin comillas dobles, una coma tras el último elemento, comentarios // o /* */, NaN o undefined (y True o None de Python) y comillas tipográficas copiadas de una app de mensajería. La posición indicada es donde el analizador se atascó; la causa real puede estar un poco antes.
¿Cómo leo la línea y la columna del error y por qué lo que sigue está en inglés?
Las líneas y las columnas empiezan en 1. La posición se toma del error del navegador cuando lo indica; cuando no (Safari, por ejemplo), la herramienta analiza el texto por su cuenta para encontrar el primer carácter incorrecto. El texto que sigue a «·» es el mensaje original de JSON.parse del navegador, así que su redacción varía entre navegadores y aquí no se traduce.
¿Cómo convierto las secuencias \u4e2d\u6587 de un JSON en texto legible?
Basta con pulsar «Formatear» o «Minificar». La herramienta analiza el JSON y lo vuelve a escribir, y las secuencias \uXXXX dentro de las cadenas pasan a ser los caracteres reales. Si todo el contenido es una cadena escapada (entre comillas y llena de \"), usa antes «Desescapar». En sentido contrario, convertir texto no ASCII a la forma \u no es posible; «Escapar» solo trata comillas, barras invertidas, saltos de línea y caracteres similares.
¿Qué diferencia hay entre «Escapar» y «Desescapar»? ¿Cómo recupero una cadena llena de \" que devuelve una API?
«Escapar» convierte el texto en algo que cabe dentro de una cadena (una barra invertida antes de las comillas, los saltos de línea pasan a \n), sin las comillas exteriores. «Desescapar» hace lo contrario. Para una salida de API llena de \", elige «Desescapar»; funciona con o sin las comillas exteriores. Después pulsa «⇄ Usar resultado como entrada» y pasa solo a «Formatear».
Los números largos (como los ID snowflake) cambian al final tras formatear. ¿Qué hago?
Los enteros mayores que 2^53 (9007199254740991) no se pueden representar con exactitud en JavaScript, así que JSON.parse ya ha perdido precisión al leerlos y los últimos dígitos suelen convertirse en ceros. Al formatear o minificar, la página muestra un aviso con hasta 5 posiciones. Para conservar esos valores, haz que el origen de datos devuelva esos ID como cadenas (entre comillas dobles).
Tras formatear, 1.0 se convirtió en 1 y desapareció una clave duplicada. ¿Por qué?
Formatear y minificar analizan el JSON y lo vuelven a escribir, así que los números se reescriben a la manera de JavaScript: 1.0 pasa a 1, 1E2 pasa a 100, 0.10 pasa a 0.1 y -0 pasa a 0. Los valores siguen siendo los mismos. Si un objeto tiene la misma clave dos veces, solo se conserva la última, sin ningún aviso.
¿Cómo ordena «Ordenar claves»? ¿Cambian los arrays?
Las claves de todos los niveles se ordenan por código de carácter, con las mayúsculas antes que las minúsculas, y los demás alfabetos por punto de código y no por orden de diccionario. Los elementos de los arrays conservan su orden. Las claves puramente numéricas (como "2" y "10") son una excepción: JavaScript siempre las coloca primero, en orden numérico, así que pasan al principio aunque «Ordenar claves» esté desmarcado.
¿Qué tamaño de JSON admite? ¿Se suben mis datos?
No hay un límite de tamaño fijo. A partir de 1 millón de caracteres, el procesamiento se retrasa unos 0.6 segundos tras escribir, y un texto muy grande está limitado sobre todo por la memoria del navegador. Todo se ejecuta en tu navegador; la página no envía tu contenido en ninguna petición y no guarda lo que escribes.