Cómo convertir ajustes INI, JSON y YAML

Pega una configuración y elige uno de los cinco sentidos: INI a JSON, INI a YAML, INI a TOML, JSON a INI o YAML a INI. Convertir escribe el resultado bajo las métricas, y Copiar o Descargar lo guarda como converted-config.json, .yaml, .toml o .ini.

Todo se ejecuta en la página: sin subidas, sin peticiones a este sitio, y el editor sigue funcionando sin conexión. TOML es solo una salida: la herramienta nunca lee TOML.

  1. Pega la configuración en el editor o pulsa Cargar ejemplo para ver una muestra INI con una sección.
  2. Elige el sentido: INI a JSON, INI a YAML, INI a TOML, JSON a INI o YAML a INI.
  3. Pulsa Convertir. Un editor vacío, un documento JSON o YAML ilegible o una línea INI que no sea un par clave = valor ni una cabecera [sección] detienen la ejecución; la línea de estado indica la línea y la columna.
  4. Lee las métricas (ajustes de primer nivel, líneas de entrada, tamaño de entrada y de salida) y después los avisos: secciones combinadas, claves repetidas, nulos omitidos y valores que INI no puede contener.
  5. Pulsa Copiar o Descargar para llevarte el texto convertido, y Limpiar antes del siguiente archivo.

Qué conserva el conversor y qué no puede conservar

Cómo se lee el lado INI

El lector sigue las convenciones de los archivos .ini: líneas clave = valor o clave: valor, cabeceras [sección] y comentarios con ; o #. Un comentario en línea solo empieza cuando el signo va precedido de un espacio, así que port=8080 ; nota conserva 8080 y color=#ff0000 conserva su valor. Las líneas en blanco se ignoran y todo ajuste posterior a una cabecera [sección] pertenece a esa sección.

Un valor puede ir entre comillas: las comillas dobles admiten los escapes de barra invertida, comilla doble, salto de línea, retorno de carro, tabulador y punto de código, y las comillas simples son literales. Una clave que contenga =, :, #, ; o corchetes debe ir entrecomillada igual. Una cabecera puede llevar comentario: [database] ; credenciales.

Las repeticiones se combinan en lugar de rechazarse: una segunda [database] se une a la primera, una clave repetida conserva su último valor y una sección con el nombre de un ajuste anterior lo sustituye. Cada decisión aparece en los avisos en lugar de cambiar el archivo en silencio.

Tipos de valor: qué sigue siendo texto

Un valor se convierte en número solo cuando JavaScript vuelve a imprimir ese número carácter por carácter. 8080, -7 y 3.5 son números; 007, 0123456789, 1.50, +1, 1e3 y cualquier id mayor que 2^53 siguen siendo texto, así que un código postal, un teléfono o una versión nunca se reescriben. true y false son booleanos, null, nil y ~ son nulos, y yes, no, on y off siguen siendo texto.

JSON y YAML conservan los tipos que produjo su propio analizador. De camino a INI, una cadena que se leería como número, booleano o nulo se entrecomilla ("8080", "true", "null"), y una cadena con un signo de comentario, espacios al principio o al final o un salto de línea se entrecomilla con escapes, de modo que la ida y vuelta devuelve el mismo valor con el mismo tipo.

Qué conserva cada destino

INI a JSON, YAML y TOML conservan la estructura y los tipos. TOML no tiene nulos, así que un ajuste con valor nulo se omite y se nombra en los avisos, y un nombre que TOML leería de otra forma se entrecomilla: [my section] pasa a ["my section"].

JSON a INI y YAML a INI aplanan el documento a un solo nivel. Una lista o un objeto anidado se escriben como JSON compacto (tags=["a","b"]) y se avisa de ello; una lista o un valor único en la raíz no pueden escribirse como INI y detienen la ejecución; un documento vacío avisa de que la salida INI está vacía.

INI solo tiene un nivel de secciones, una línea de continuación con sangría no se lee y los comentarios de la entrada no pasan a ninguna salida.

Herramientas recientes: