Convertir objetos JSON5 a JSON — Numio
Convierte un literal de objeto JavaScript en JSON estricto con sangría de 2 espacios. Se aceptan y normalizan claves sin comillas, comillas simples, comentarios, comas finales, números hexadecimales y decimales que empiezan por punto.
Copiar un objeto de configuración o de fixture de un archivo .js a un archivo JSON, al cuerpo de una petición a una API o a una colección de Postman.
Admite JSON y JSON5, incluidos comentarios, comillas simples y comas finales. No se ejecutan funciones ni expresiones JavaScript.
JS Object
JSON
Cuándo usarla
- Copiar un objeto de configuración o de fixture de un archivo .js a un archivo JSON, al cuerpo de una petición a una API o a una colección de Postman.
- Limpiar un objeto pegado desde las DevTools del navegador o desde la documentación para que lo acepte un parser JSON estricto.
Cómo usarla
- Pega el literal de objeto (solo los datos, sin declaración de variable ni punto y coma final) en el editor izquierdo, o usa el botón de cargar archivo para abrir un archivo UTF-8.
- El JSON aparece a la derecha mientras escribes; si aparece un error como "invalid character", revisa la línea y la columna indicadas.
- Revisa los valores convertidos (los hexadecimales pasan a decimales y las comillas a comillas dobles) y copia el resultado.
Literal de objeto JavaScript
{
// Mongoose-style field definition
title: {
type: 'String',
required: true,
},
year: { type: 'Number', max: 0x7E6 },
tags: ['draft', 'review',],
ratio: .75,
'content-type': "text/plain",
}JSON
{
"title": {
"type": "String",
"required": true
},
"year": {
"type": "Number",
"max": 2022
},
"tags": [
"draft",
"review"
],
"ratio": 0.75,
"content-type": "text/plain"
}Detalles y limitaciones
La entrada se analiza con el parser JSON5 en tu navegador; el código nunca se ejecuta. Las expresiones, funciones, new Date(), template literals, undefined y las referencias a variables se rechazan como caracteres no válidos.
NaN e Infinity se rechazan con un error porque JSON no puede representarlos.
No se conservan los comentarios ni el formato original de las claves; la salida siempre usa comillas dobles y sangría de 2 espacios.
Los enteros mayores que 2^53 pierden precisión (12345678901234567890 se convierte en 12345678901234567000). Pon los ID grandes entre comillas como cadenas.
FAQ
¿Puedo pegar const config = { ... };?
No. Solo se acepta el valor. Quita la declaración y el punto y coma final; si no, el parser informa de un carácter no válido en esa posición.
¿Qué pasa con las claves duplicadas?
Gana la última aparición. {a: 1, a: 2} se convierte en {"a": 2} sin ningún aviso, así que revisa los objetos combinados a mano.
¿Acepta arrays o valores sueltos en la raíz?
Sí. Funciona cualquier valor JSON5; por ejemplo, [1, 2,] se convierte en un array JSON de dos elementos y 'hi' en "hi".