Pular para o conteúdo
LeedyBox
Apoiar

Conversor de estilo de nomes (camelCase, snake_case …)

Converta nomes linha por linha, ou renomeie todas as chaves de um documento JSON, entre camelCase, PascalCase, snake_case, kebab-case e outros.

Todos os estilos para a primeira linha

Revise os resultados antes de usá-los. A ferramenta é fornecida no estado em que se encontra, sem garantia, e os resultados podem estar incompletos ou incorretos. Termos de Serviço

Os limites entre palavras são detectados automaticamente e as siglas são normalizadas (por exemplo, userID vira userId). Renomear chaves pode quebrar código, APIs ou mapeamentos de banco de dados que dependem dos nomes originais.

Como usar

  1. Com "Aplicar a" em "Cada linha do texto", cole ou digite seus nomes em "Entrada", um por linha. Cada linha é convertida separadamente, e as linhas em branco e os espaços ou tabulações no início ou no fim de uma linha são mantidos.
  2. Escolha um estilo em "Converter para", como camelCase, snake_case ou CONSTANT_CASE. A saída é atualizada enquanto você digita ou muda uma opção, então não há botão de converter.
  3. Para renomear as chaves de um documento JSON, defina "Aplicar a" como "Chaves JSON (valores inalterados)" e cole o documento inteiro. As chaves dentro de objetos e arrays aninhados também são renomeadas.
  4. No modo "Cada linha do texto", a caixa "Todos os estilos para a primeira linha" mostra a primeira linha da entrada que não está em branco nos dez estilos, para você compará-los antes de escolher um.
  5. Revise a "Saída" e clique em "Copiar resultado".

Perguntas frequentes

O texto que eu digito é enviado para algum lugar?

Não. A conversão é feita no seu navegador com JavaScript, e os nomes ou o JSON que você digita não são enviados à LeedyBox.

Como a ferramenta decide onde uma palavra termina e a próxima começa?

Uma nova palavra começa onde uma letra minúscula ou um dígito é seguido de uma maiúscula (fooBar, user2Name), antes da última maiúscula de uma sequência de maiúsculas quando ela é seguida de uma letra minúscula (XMLHttp vira XML e Http) e em qualquer caractere que não seja letra nem dígito, como espaço, sublinhado, hífen ou ponto. A passagem de letras para dígitos, ou de dígitos para letras, não inicia por si só uma nova palavra, então base64Encode vira base64_encode em snake_case e user2name continua sendo uma única palavra.

Por que não recebo o nome original de volta quando converto de novo?

Alguns detalhes se perdem no caminho. Cada palavra é reescrita com as maiúsculas e minúsculas do estilo escolhido, então parseHTML vira parse_html em snake_case e volta como parseHtml em camelCase. Um número também se junta à palavra anterior quando o separador desaparece: total_amount_2 vira totalAmount2 em camelCase e depois total_amount2 em snake_case. Guarde os nomes originais se precisar de uma conversão de ida e volta exata.

Por que a pontuação sumiu, e por que o Title Case põe maiúscula em todas as palavras?

Todo caractere que não é letra nem dígito é tratado como separação entre palavras. A pontuação e os símbolos não são copiados para a saída, e só o separador do próprio estilo, se ele tiver um, é colocado entre as palavras, então "Hello, world!" vira "hello world" em lower case e don't vira don t. O Title Case põe em maiúscula a inicial de cada palavra, inclusive das curtas, como de e da, e deixa o resto da palavra em minúsculas, então NASA vira Nasa e iPhone vira I Phone. A ferramenta foi pensada para nomes e identificadores, e não para frases.

O que acontece com chaves JSON como _id, @type ou $ref?

Um símbolo no início conta como separador e, por isso, é removido: em camelCase, _id vira id, @type vira type e $ref vira ref. Uma chave formada só por símbolos, como $, mantém o nome. Se duas chaves do mesmo objeto acabarem com o mesmo nome, por exemplo _id e id, ou user_name e userName, a ferramenta mostra um erro que indica as duas chaves e o caminho do objeto (como $ para o nível superior) e não converte nada, para que nenhum valor seja sobrescrito.

O modo JSON muda alguma coisa além das chaves?

O documento é analisado e escrito de novo com recuo de dois espaços, então os espaços e as quebras de linha podem mudar. Os números passam pelo JavaScript: 1.0 é escrito como 1 e 1e2 como 100, inteiros maiores que 9007199254740991 e decimais com muitos dígitos podem ser arredondados, e um número grande demais para o JavaScript, como 1e400, vira null. Alguns escapes em strings são escritos como caracteres simples, por exemplo \u00e9 como é e \/ como /. Chaves que são, ou passam a ser, números inteiros menores que 4294967295 sem zero à esquerda, como "2" ou "_3", vão para antes das outras chaves do objeto, em ordem numérica. Se a mesma chave aparecer duas vezes em um objeto, só o último valor é mantido, sem aviso. A entrada precisa ser JSON estrito, então comentários e vírgulas finais causam erro.

Funciona com letras acentuadas e escritas não latinas?

Letras de qualquer escrita contam como caracteres de palavra, e uma letra acentuada armazenada como um único caractere, como é, é tratada como qualquer outra letra. Escritas sem distinção entre maiúsculas e minúsculas, como coreano, chinês e japonês, mantêm os caracteres inalterados, e só os separadores entre as palavras seguem o estilo escolhido. A conversão entre maiúsculas e minúsculas segue as regras gerais do Unicode, então ß vira SS em UPPER CASE e o İ maiúsculo vira um i comum em minúsculas. Para nomes turcos ou azerbaijanos, ative "Letras turcas": aí I vira ı, e i vira İ. Marcas combinantes, como os sinais de tom do tailandês, os sinais vocálicos do tailandês e do hindi ou um acento armazenado como caractere separado, continuam ligadas à sua letra. Textos escritos sem espaços entre as palavras, como tailandês, chinês ou japonês, só são divididos onde há espaços ou outros separadores.