Vai al contenuto
LeedyBox
Sostieni

Convertitore di stile (camelCase, snake_case …)

Converti i nomi riga per riga, o rinomina tutte le chiavi di un documento JSON, tra camelCase, PascalCase, snake_case, kebab-case e altri stili.

Tutti gli stili per la prima riga

Verifica i risultati prima di usarli. Lo strumento è fornito così com’è, senza garanzia, e i risultati possono essere incompleti o errati. Termini di servizio

I confini tra le parole vengono rilevati automaticamente e le sigle normalizzate (ad esempio userID diventa userId). Rinominare le chiavi può rompere codice, API o mappature di database che si basano sui nomi originali.

Come si usa

  1. Con «Applica a» lasciato su «Ogni riga del testo», incolla o digita i nomi in «Input», uno per riga. Ogni riga viene convertita separatamente, e le righe vuote e gli eventuali spazi o tabulazioni all’inizio o alla fine di una riga vengono mantenuti.
  2. Scegli uno stile in «Converti in», per esempio camelCase, snake_case o CONSTANT_CASE. Il risultato si aggiorna mentre scrivi o cambi un’opzione, quindi non c’è un pulsante per convertire.
  3. Per rinominare le chiavi di un documento JSON, imposta «Applica a» su «Chiavi JSON (valori invariati)» e incolla l’intero documento. Vengono rinominate anche le chiavi all’interno di oggetti e array annidati.
  4. In modalità «Ogni riga del testo», il riquadro «Tutti gli stili per la prima riga» mostra in tutti e dieci gli stili la prima riga dell’input che non sia vuota né composta solo da spazi, così puoi confrontarli prima di sceglierne uno.
  5. Controlla il risultato in «Output», poi fai clic su «Copia il risultato».

Domande frequenti

Il testo che inserisco viene inviato da qualche parte?

No. La conversione avviene nel browser con JavaScript, e i nomi o il JSON che inserisci non vengono caricati su LeedyBox.

Come decide lo strumento dove finisce una parola e dove inizia la successiva?

Una nuova parola inizia dove una lettera minuscola o una cifra è seguita da una maiuscola (fooBar, user2Name), prima dell’ultima maiuscola di una sequenza di maiuscole seguita da una minuscola (XMLHttp diventa XML e Http) e in corrispondenza di qualsiasi carattere che non sia una lettera o una cifra, come uno spazio, un trattino basso, un trattino o un punto. Il passaggio da lettere a cifre, o viceversa, non basta da solo a iniziare una nuova parola, quindi base64Encode diventa base64_encode in snake_case e user2name resta un’unica parola.

Perché, convertendo di nuovo un nome, non ottengo quello originale?

Durante la conversione alcuni dettagli si perdono. Ogni parola viene riscritta con le maiuscole e le minuscole dello stile scelto, quindi parseHTML diventa parse_html in snake_case e torna come parseHtml in camelCase. Inoltre un numero si unisce alla parola precedente quando il separatore scompare: total_amount_2 diventa totalAmount2 in camelCase e poi total_amount2 in snake_case. Conserva i nomi originali se devi poter tornare esattamente a quelli di partenza.

Perché la punteggiatura è sparita, e perché Title Case mette la maiuscola a ogni parola?

Ogni carattere che non è una lettera o una cifra viene trattato come separazione tra parole. Punteggiatura e simboli non vengono copiati nel risultato, e tra le parole viene inserito solo il separatore proprio dello stile, se ne ha uno, quindi «Hello, world!» diventa «hello world» in lower case e don't diventa don t. Title Case mette la maiuscola iniziale a ogni parola, comprese quelle brevi come di e il, e scrive in minuscolo il resto della parola, quindi NASA diventa Nasa e iPhone diventa I Phone. Lo strumento è pensato per nomi e identificatori più che per frasi.

Che cosa succede alle chiavi JSON come _id, @type o $ref?

Un simbolo iniziale conta come separatore e quindi viene rimosso: in camelCase, _id diventa id, @type diventa type e $ref diventa ref. Una chiave composta solo da simboli, come $, mantiene il suo nome. Se due chiavi dello stesso oggetto finiscono per avere lo stesso nome, per esempio _id e id oppure user_name e userName, lo strumento mostra un errore che indica entrambe le chiavi e il percorso del loro oggetto (come $ per il livello principale) e non converte nulla, così nessun valore viene sovrascritto.

La modalità JSON cambia qualcos’altro oltre alle chiavi?

Il documento viene analizzato e riscritto con un rientro di due spazi, quindi spaziatura e a capo possono cambiare. I numeri passano per JavaScript: 1.0 viene scritto come 1 e 1e2 come 100, gli interi maggiori di 9007199254740991 e i decimali con molte cifre possono essere arrotondati, e un numero troppo grande per JavaScript, come 1e400, diventa null. Alcune sequenze di escape nelle stringhe vengono scritte come caratteri normali, per esempio \u00e9 come é e \/ come /. Le chiavi che sono, o diventano, numeri interi inferiori a 4294967295 senza zero iniziale, come "2" o "_3", si spostano prima delle altre chiavi del loro oggetto, in ordine numerico. Se la stessa chiave compare due volte nello stesso oggetto, viene mantenuto solo l’ultimo valore, senza alcun avviso. L’input deve essere JSON rigoroso, quindi commenti e virgole finali causano un errore.

Funziona con le lettere accentate e con le scritture non latine?

Le lettere di qualsiasi sistema di scrittura contano come caratteri di parola, e una lettera accentata memorizzata come un unico carattere, come é, viene trattata come qualsiasi altra lettera. Le scritture senza distinzione tra maiuscole e minuscole, come coreano, cinese e giapponese, mantengono i caratteri invariati, e solo i separatori tra le parole seguono lo stile scelto. Il passaggio a maiuscole e minuscole segue le regole Unicode generali, quindi ß diventa SS in UPPER CASE e la İ maiuscola diventa una normale i in minuscolo. Per nomi turchi o azeri attiva «Lettere turche»: allora I diventa ı e i diventa İ. I segni combinanti, come i segni tonali thailandesi, i segni vocalici thailandesi e hindi o un accento memorizzato come carattere separato, restano uniti alla loro lettera. Il testo scritto senza spazi tra le parole, come il thailandese, il cinese o il giapponese, viene diviso solo dove ci sono spazi o altri separatori.