Inicio › Herramientas para desarrolladores › Objeto JavaScript a JSON

Objeto JavaScript a JSON

Pega un literal de objeto de código JavaScript o TypeScript, una salida de console.log, un documento del shell de MongoDB o un dict de Python impreso con print(). El conversor lo analiza como lo haría el lenguaje y escribe JSON estricto con las claves entre comillas dobles, para que nunca tengas que corregir comillas y comas a mano.

Última actualización:

Listo.
Publicidad
Publicidad

Cómo usar Objeto JavaScript a JSON

  1. Pega tu objeto en el cuadro de la izquierda, suelta en él un archivo .js o .py, o elige un ejemplo.
  2. Consulta el resultado: el JSON válido aparece a la derecha mientras escribes, con un resumen de lo que se convirtió.
  3. Elige cómo tratar los valores especiales: quitar las claves undefined como JSON.stringify o conservarlas como null.
  4. Elige el formato: sangría, claves ordenadas y escape solo ASCII.
  5. Copia o descarga el JSON. Si algo no se puede convertir, la barra de estado muestra la línea y la columna que hay que corregir.

Sintaxis de JavaScript y Python y en qué se convierte en JSON

EntradaEjemploSalida JSON
Clave sin comillas{ name: 'Ada' }{"name": "Ada"}
Clave numérica{ 1: 'a', 2.50: 'b' }{"1": "a", "2.5": "b"}
Comillas simples / plantilla literal'it\'s', `dark`"it's", "dark"
Coma final[1, 2, 3,][1, 2, 3]
undefined{ a: undefined } / [undefined]clave eliminada / [null]
NaN, Infinity{ x: NaN }{"x": null}
Hexadecimal, binario, separadores, BigInt0xFF, 0b101, 1_000, 9007199254740993n255, 5, 1000, 9007199254740993
Punto inicial o final.5, 5.0.5, 5
Fechanew Date('2026-03-14T09:30:00Z')"2026-03-14T09:30:00.000Z"
Función o método{ f() {}, g: () => 1 }claves eliminadas
Constantes de PythonTrue, False, Nonetrue, false, null
Tupla y conjunto de Python(1, 2), {'a', 'b'}[1, 2], ["a", "b"]
Decimal y datetime de PythonDecimal('9.90'), datetime.date(2024, 1, 2)9.90, "2024-01-02"
Shell de MongoDBObjectId("65f…"), NumberInt(42)"65f…", 42

Consejos para conversiones limpias

  • Copia de la consola con cuidado. Las consolas de los navegadores contraen los objetos largos en {…} y los arrays en Array(20). Haz clic derecho en el objeto y usa "Copy object" (Chrome, Edge) para obtener el texto completo, o registra directamente JSON.stringify(obj, null, 2).
  • print() frente a json.dumps() en Python. print(d) escribe el repr de Python con comillas simples y True/None, que no es JSON. En tu propio código, json.dumps(d, indent=2, default=str) es la forma fiable; este conversor es para salidas que ya tienes.
  • Se conserva el orden de las claves. Las claves mantienen el orden de origen, incluidas las que parecen numéricas y que un motor de JavaScript movería al principio. Activa la ordenación para obtener diferencias estables.
  • Claves duplicadas. Tanto en JavaScript como en Python gana el último valor, así que el conversor conserva el último y te indica qué clave estaba repetida.
  • ID grandes. Los números mayores que 9,007,199,254,740,991 pierden precisión al leerlos con JSON.parse de JavaScript. La salida conserva todos los dígitos, pero considera guardar esos ID como cadenas.

Preguntas frecuentes

¿Qué diferencia hay entre un objeto JavaScript y JSON?

JSON es un formato de texto estricto derivado de la sintaxis de objetos de JavaScript. En JSON, cada clave debe ser una cadena entre comillas dobles, las cadenas solo usan comillas dobles, no se permiten comas finales ni comentarios, y los únicos valores posibles son cadenas, números, true, false, null, objetos y arrays. Un literal de objeto de JavaScript admite claves sin comillas, comillas simples, plantillas literales, comas finales, comentarios, undefined, funciones y expresiones, así que la mayor parte del código real no es JSON válido tal como está escrito.

¿Por qué no usar simplemente JSON.stringify?

JSON.stringify funciona con un objeto vivo dentro de un programa en ejecución. Cuando solo tienes el texto fuente, por ejemplo un fragmento copiado de código, de documentación o de un registro de consola, tendrías que evaluarlo primero, lo que no es seguro con texto no confiable y falla cuando hace referencia a variables. Esta herramienta analiza el texto sin ejecutar nada y produce el mismo JSON que generaría JSON.stringify con datos literales.

¿Qué pasa con undefined, las funciones y NaN?

JSON.stringify omite las claves de objeto cuyo valor es undefined o una función, escribe null para undefined o funciones dentro de arrays, y escribe null para NaN e Infinity. El conversor sigue las mismas reglas por defecto, y puedes cambiar a conservar esas claves como null.

¿Puede convertir un diccionario de Python a JSON?

Sí. La salida de print() o repr() de un dict se convierte directamente: True, False y None pasan a true, false y null, las tuplas y los conjuntos pasan a arrays, se admiten cadenas simples, con triple comilla y raw, las claves numéricas pasan a cadenas, y se desenvuelven reprs habituales como Decimal('1.5'), datetime.date(2024, 1, 2) y dict(a=1).

¿Qué pasa con las variables y las llamadas a funciones en mi objeto?

Una referencia como path.resolve(__dirname, 'dist') no tiene valor hasta que el programa se ejecuta. Con la configuración predeterminada se conserva como cadena para que el resto de los datos se convierta igualmente; desactiva la opción para obtener un error en esa posición exacta. La sintaxis de propagación y las propiedades abreviadas como { a, b } siempre necesitan que los valores estén escritos.

¿Maneja con precisión números muy grandes?

Sí. El texto de los números se copia dígito a dígito en lugar de redondearse mediante un número de coma flotante de doble precisión, así que los ID mayores que 2^53 se mantienen exactos. Los literales hexadecimales, octales, binarios y BigInt se convierten a decimal exacto con precisión arbitraria.

¿Se envía mi código a algún sitio?

No. El análisis y el formato se hacen en JavaScript en esta página; no se sube, registra ni guarda nada excepto tus opciones, que se recuerdan en tu propio navegador.

¿Se prueban todas las herramientas de FreeToolCabin para comprobar su calidad y precisión?

Sí. Cada herramienta del sitio pasa pruebas automáticas en navegadores reales para comprobar que el resultado es correcto y que no hay errores. Si encuentras un fallo o tienes una sugerencia, escríbenos a [email protected] y lo revisaremos.

Herramientas relacionadas

Ver todas las de Conversores de datos y formatos de archivo →