Conversor de configuración

Pega un formato de configuración y obtén los otros dos mientras escribes.

Cómo se usa

  1. Pega tu configuración: YAML, JSON o .properties de Java. El formato se detecta y los otros dos aparecen abajo mientras escribes; no hay ningún botón que pulsar.
  2. Si la detección falla, elige tú el formato de origen. Escoge 2 o 4 espacios de sangría y desactiva «Expandir claves con puntos» para mantener planas las claves al estilo Spring.
  3. Copia o descarga cada resultado por separado: los nombres de archivo son config.yaml, config.json y config.properties.

Ejemplo

Entrada (YAML)

server:
  port: 8080
  name: order-service
debug: true

JSON y Properties

{
  "server": {
    "port": 8080,
    "name": "order-service"
  },
  "debug": true
}

Properties
----------
server.port = 8080
server.name = order-service
debug = true

Solo con las reglas por defecto: el origen se detecta como YAML, así que 8080 sigue siendo un número y true un booleano. Properties no tiene tipos, así que los mismos valores salen como las cadenas 8080 y true; cuando el origen es .properties son cadenas de principio a fin.

Reglas, límites y problemas conocidos

  • Solo tres formatos: YAML, JSON y .properties de Java. Sin TOML, sin cabeceras [sección] de INI, sin XML ni CSV.
  • YAML se admite como subconjunto de configuración: mapas por bloques, secuencias, flow {…} / […], escalares entrecomillados y escalares de bloque | / >. Las anclas (&), los alias (*), las etiquetas !tag, las claves de fusión << y las claves complejas ? se notifican como errores en lugar de adivinarse.
  • Solo se convierte el primer documento YAML; un --- posterior se ignora y se avisa.
  • Los comentarios no se conservan: los tres formatos los colocan de forma distinta, así que un comentario mal situado es peor que ningún comentario.
  • Properties no tiene tipos. Todos los valores son cadenas, así que port = 8080 se convierte en "8080" en JSON, no en 8080. Los números, los booleanos y null solo sobreviven cuando el origen es YAML o JSON.
  • El texto no ASCII se escribe tal cual (UTF-8), no escapado como \uXXXX. Properties.store() de Java escribe ISO-8859-1, así que guarda el archivo como UTF-8 si lo vas a pegar en un proyecto Java.
  • Los enteros fuera del rango seguro (como 12345678901234567890) se conservan como cadenas con los dígitos exactos que escribiste, en lugar de redondearse a un número.
  • El orden de las claves sigue tu entrada; no hay opción de ordenar.
  • Un array o un valor suelto de nivel superior no se puede escribir como properties: ese panel lo indica y el otro sigue convirtiendo.
  • Sin subida de archivos, sin parámetros en la URL y sin historial. Todo funciona en tu navegador: no se sube ni se guarda nada.
  • Una cadena que contiene un salto de línea se escribe como "a\nb" en YAML, no como un escalar de bloque |.
  • Límites: 1.000.000 de caracteres y 64 niveles de anidamiento; si se supera cualquiera, se muestra un error en lugar de un resultado truncado. Por encima de 200.000 caracteres el resultado se actualiza unos 0,6 s después de que dejes de escribir; la salida usa LF y no termina en salto de línea.

Lo que suele hacer falta después, una vez que la configuración está en el formato correcto.