Convertir objeto JavaScript a JSON estricto
Pega un objeto JavaScript con claves sin comillas, comillas simples, comentarios o una coma final y obtén JSON estricto y escapado. Para convertir un objeto JavaScript a JSON, un analizador lee el texto y nunca lo ejecuta como código, así que puedes pegar texto de una consola, de un archivo de configuración o de un ejemplo de código.
Convertir objeto JavaScript a JSON paso a paso
- Pega el objeto en el cuadro Objeto JavaScript o JSON. Al pegar, se convierte al instante. Si escribes, el resultado se actualiza unos 300 milisegundos después de que dejes de teclear.
- En Formato elige cómo quieres el resultado: Minificado (por defecto, en una sola línea), 2 espacios o 4 espacios.
- Lee el resultado bajo JSON estricto. Debajo aparecen «Convertido a JSON estricto.» y el número de caracteres.
- Pulsa Copiar, justo debajo del resultado. El botón muestra Copiado un instante.
- Pulsa Borrar para vaciar el cuadro y empezar de nuevo.
Un ejemplo corto: pegas {name: 'Ana', tags: ['a', 'b',], id: 0xFF}. Con Minificado, el resultado es {"name":"Ana","tags":["a","b"],"id":255}.
Qué sintaxis suelta de JavaScript acepta
El texto se lee con el analizador de JSON5, que entiende en qué se diferencia un objeto literal de JavaScript de JSON. Cada una de estas formas se convierte en lugar de rechazarse:
- Clave sin comillas:
{name: "Ana"}pasa a{"name":"Ana"}. - Cadena con comillas simples:
{a: 'x'}pasa a{"a":"x"}. - Coma final:
[1, 2,]pasa a[1,2]. - Comentarios:
// notay/* nota */se quitan. - Número hexadecimal:
0xFFpasa a255. - Más inicial o punto decimal suelto:
+1,.5y5.pasan a1,0.5y5. - NaN e Infinity:
{a: Infinity}pasa a{"a":null}. - Una cadena partida en varias líneas con una barra invertida se convierte en una sola cadena, sin salto de línea.
Las comillas, las barras invertidas y los saltos de línea dentro de una cadena se escapan por ti: 'He said "hi"' llega como "He said \"hi\"". Lo que ya es JSON válido pasa sin cambios, salvo por el formato que elijas.
Minificar JSON online o con 2 o 4 espacios
El menú Formato está encima del resultado. Minificado escribe todo en una línea y sin espacios, algo útil para el cuerpo de una petición, unos datos de prueba o un valor que vas a pegar dentro de una cadena.
Con 2 espacios y 4 espacios obtienes una versión con sangría, más fácil de leer y de comparar. El resultado cambia en cuanto eliges y Copiar se lleva lo que ves.
Lo que no puede leer y el mensaje de error
Solo se aceptan datos, no código. Cuando el analizador se detiene, aparece un cuadro rojo titulado No se pudo leer con un motivo claro y la posición, por ejemplo «Línea 1, columna 6». Con {a:1 b:2} se detiene en la b y te pide revisar si justo antes falta una coma, dos puntos, un corchete o unas comillas. Si el texto termina con un corchete, una llave o unas comillas aún abiertos, el mensaje es «El texto termina demasiado pronto.»
const x = {a: 1}: se detiene en la primera letra. Pega solo el objeto.{a: 1};: se detiene en el punto y coma final. Quítalo.- Una cadena con comillas invertidas (plantilla) no se acepta. Usa comillas simples o dobles.
undefined, una función onew Date()no se aceptan: son código o no tienen forma en JSON. Escribe la fecha como cadena.- Si falta una coma, unos dos puntos o un corchete, se detiene en el carácter posterior al hueco e indica línea y columna.
Stringify JSON: números, claves repetidas y otros cambios
El resultado lo produce el JSON.stringify del propio navegador, así que los números son números de JavaScript. Conviene conocer las consecuencias antes de copiar:
- Los enteros mayores que
9007199254740991pierden precisión:12345678901234567890pasa a12345678901234567000. 1.0pasa a1y0xFFpasa a255.- NaN, Infinity y -Infinity pasan a
null. - Si una clave aparece dos veces, se conserva el último valor.
Si los datos ya son JSON válido y solo quieres sangría sin tocar ni un dígito, usa el «Formateador de JSON». Para comprobar el JSON contra un esquema, usa el «Validador de JSON Schema».
Límites y privacidad
- Hasta 5.000.000 de caracteres. Un texto más largo se rechaza con un mensaje que te indica el límite.
- El análisis nunca ejecuta tu texto, así que el código pegado no puede correr.
- Tu texto se convierte por completo en tu dispositivo. No se sube ni se guarda nada.
Preguntas frecuentes
¿Cómo pasar un objeto a JSON online?
Pega el objeto en el cuadro «Objeto JavaScript o JSON». Se convierte al instante al pegar, o unos 300 milisegundos después de que dejes de escribir, y el JSON estricto aparece bajo «JSON estricto». Pulsa «Copiar» para llevártelo. Pega solo el objeto, no una línea como const data = {...};.
¿Cómo cambiar las comillas simples por dobles en JSON?
Pega el texto. Cada cadena entre comillas simples sale con comillas dobles, y una comilla doble dentro de ella se escapa por ti, de modo que 'He said "hi"' pasa a "He said \"hi\"". Solo se tocan cadenas y claves, así que un apóstrofo dentro de una cadena con comillas dobles se queda como está.
¿Cómo quito la coma final de un JSON?
Pega el texto. Una coma tras el último elemento de un objeto o una lista, como en [1, 2,], se acepta al leer y no aparece en el resultado de «JSON estricto». No cambia nada más de los datos.
¿Puede JSON tener claves sin comillas o comentarios?
El JSON estricto no: cada clave y cada cadena necesitan comillas dobles, y no existe sintaxis de comentarios. Los objetos de JavaScript y los archivos de configuración suelen tener ambas cosas. Esta herramienta los lee, escribe las claves con comillas dobles y descarta los comentarios, así que el resultado es JSON válido.
JSON5 a JSON: ¿qué diferencia hay entre JSON y JSON5?
JSON5 es un superconjunto más flexible de JSON que admite claves sin comillas, cadenas con comillas simples, comas finales, comentarios, números hexadecimales y algunas formas más propias de JavaScript. Esta herramienta lee esa sintaxis y escribe JSON normal, de modo que un documento JSON5 sin valores no admitidos se convierte en JSON que cualquier analizador acepta.
¿Cómo minificar JSON o dejarlo con 2 o 4 espacios?
Usa el menú «Formato» sobre el resultado. «Minificado», la opción por defecto, da una línea sin espacios. 2 espacios y 4 espacios dan una versión con sangría. El resultado y lo que copia «Copiar» cambian en cuanto eliges otra opción.
¿Por qué dice «No se pudo leer»?
El texto no es un objeto, una lista o un valor que el analizador entienda. El cuadro rojo indica dónde se detuvo, por ejemplo «Línea 1, columna 6», y qué revisar: una coma, unos dos puntos, un corchete o unas comillas que falten justo antes, o un corchete, una llave o unas comillas que sigan abiertos al final. No se aceptan sentencias como const x = {...}, un punto y coma final, cadenas con comillas invertidas, undefined, funciones ni new Date(). Pega solo el objeto.
¿Cómo escapar JSON online con comillas y saltos de línea?
No hace falta hacer nada. Una comilla, una barra invertida o un salto de línea dentro de una cadena se escribe como \", \\ o \n en el resultado. La herramienta no mete todo el JSON en una sola cadena escapada para incrustarla en otra; te da el JSON en sí.
¿Es lo mismo que JSON.stringify y cuánto texto admite?
El resultado se genera con JSON.stringify, así que las reglas de salida son las mismas. La diferencia es la entrada: JSON.stringify necesita un objeto real en tu código, mientras que aquí pegas el texto del objeto, incluida la sintaxis suelta. Admite hasta 5.000.000 de caracteres. La conversión se hace en tu dispositivo y no se sube ni se guarda nada. Los números grandes, NaN, Infinity y las claves repetidas cambian como en JSON.stringify.
Recomendado
-
Cuaderno Leuchtturm1917 A5 de puntosEsboza el cuerpo de la petición en papel antes de pegarlo
-
Ratón ergonómico vertical Logitech LiftMás cómodo para tu muñeca en sesiones largas de pruebas de API
-
Auriculares con cancelación de ruido Soundcore Q30Concentración en silencio mientras limpias otro archivo de configuración
Ayuda a mantener las herramientas gratis. ✨
Imágenes meramente ilustrativas. En calidad de Afiliado de Amazon, obtengo ingresos por las compras adscritas que cumplen los requisitos aplicables.