Conversor de configuração

Cole um formato de configuração e receba os outros dois enquanto digita.

Como usar

  1. Cole sua configuração — YAML, JSON ou .properties do Java. O formato é detectado e os outros dois aparecem abaixo enquanto você digita; sem botão para clicar.
  2. Se a detecção errar, escolha o formato de origem. Escolha 2 ou 4 espaços de indentação e desative “Expandir chaves com pontos” para manter chaves no estilo Spring achatadas.
  3. Copie ou baixe cada resultado separadamente — os nomes de arquivo são config.yaml, config.json e config.properties.

Exemplo

Entrada (YAML)

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

JSON e Properties

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

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

Apenas as regras padrão: a origem é detectada como YAML, então 8080 continua número e true continua booleano. Properties não tem tipos, então os mesmos valores saem como as strings 8080 e true — quando a origem é .properties, eles são strings do começo ao fim.

Regras, limites e problemas conhecidos

  • Apenas três formatos: YAML, JSON e .properties do Java. Sem TOML, sem cabeçalhos [seção] de INI, sem XML ou CSV.
  • YAML é suportado como um subconjunto de configuração: mapeamentos em bloco, sequências, fluxo {…} / […], escalares entre aspas e escalares de bloco | / >. Âncoras (&), aliases (*), !tags, chaves de mesclagem << e chaves complexas ? são reportadas como erros em vez de adivinhadas.
  • Apenas o primeiro documento YAML é convertido; um --- posterior é ignorado e reportado.
  • Comentários não são transportados: os três formatos os posicionam de formas diferentes, então um comentário no lugar errado é pior do que nenhum.
  • Properties não tem tipos. Todo valor é uma string, então port = 8080 vira "8080" no JSON — não 8080. Números, booleanos e null só sobrevivem quando a origem é YAML ou JSON.
  • Texto não ASCII é escrito como está (UTF-8), não escapado como \uXXXX. O Properties.store() do Java grava ISO-8859-1, então salve o arquivo como UTF-8 se for colá-lo em um projeto Java.
  • Inteiros além do intervalo seguro (como 12345678901234567890) são mantidos como strings com os dígitos exatos que você digitou, em vez de arredondados para um número.
  • A ordem das chaves segue sua entrada; não há opção de ordenação.
  • Um array ou valor solto no nível superior não pode ser escrito como properties — esse painel reporta isso, o outro ainda converte.
  • Sem upload de arquivo, sem parâmetros de URL, sem histórico. Tudo roda no seu navegador: nada é enviado ou armazenado.
  • Uma string contendo quebra de linha é escrita como "a\nb" no YAML, não como escalar de bloco |.
  • Limites: 1.000.000 de caracteres e 64 níveis de aninhamento — acima de qualquer um, você recebe um erro em vez de um resultado truncado. Acima de 200.000 caracteres o resultado é atualizado cerca de 0,6 s depois de você parar de digitar; a saída usa LF e não termina com quebra de linha.

O que as pessoas costumam precisar depois que a configuração está no formato certo.