100 % locale — i tuoi dati non lasciano mai il tuo browser

Properties in YAML — pronto per Spring Boot

Trasforma un file .properties in YAML. Le chiavi puntate si annidano e quelle indicizzate diventano elenchi: un application.yml pronto da committare.

Istantaneo Privato Zero cookie
Indentazione

Input Properties

Output YAML

Che cosa fa questo strumento

Un file .properties diventa YAML, e i punti diventano struttura.

# servizio
app.name=Demo
app.port=8080
app.debug=true
app:
  name: Demo
  port: 8080
  debug: true

= e : separano entrambi una chiave dal suo valore, le righe di commento cominciano con # o !, e una riga che finisce con una barra rovesciata continua in quella dopo. Gli escape di un file .properties — \:, \=, \n, \uXXXX — vengono sciolti, quindi caf\u00e9 arriva come café.

Le chiavi indicizzate diventano liste

app.hosts[0]=alpha
app.hosts[1]=beta
app:
  hosts:
    - alpha
    - beta

È così che Spring scrive una lista in un file che non ne ha, ed è ciò che produce il convertitore da YAML a properties di questo sito. Rileggendolo, però, ottenevi due chiavi letterali chiamate hosts[0] e hosts[1]: lo strumento non riconosceva il proprio risultato, e l’andata e ritorno perdeva la sequenza. Ora gli indici formano una sequenza quando partono da 0 senza buchi. Un buco, un doppione, o un hosts semplice lì accanto lasciano le chiavi esattamente com’erano: spostare un valore per tappare un buco sarebbe inventare un ordine.

Una chiave ripetuta viene rifiutata

app.port=8080
app.port=3000
Duplicate key "app.port": it already has a different value

Properties.load tiene l’ultima assegnazione senza una parola, quindi il primo valore spariva. Il verso da YAML a properties già si rifiutava di scrivere due chiavi che si appiattiscono sullo stesso nome; accettarle qui in silenzio era lo stesso buco visto dall’altra parte. Due righe identiche passano ancora: ripetersi non confessa nulla.

In che cosa diventano i valori

  • Numeri e booleani vengono tipizzati, come negli strumenti CSV: 8080 è un numero, true un booleano.
  • 007 resta una stringa. Anche 1e3, e tutto ciò il cui testo porta più del suo valore.
  • Gli scalari ambigui vengono citati. y, on e NO sono stringhe per un lettore YAML 1.2 e booleani per PyYAML, che legge YAML 1.1. Citare esattamente quelli tiene d’accordo i due lettori.
  • Un valore vuoto è una stringa vuota, non un null: il file dice che la chiave c’è e dentro non ha niente, e il YAML dice lo stesso.

Privato per progettazione

Tutto viene eseguito localmente nel browser con JavaScript. I tuoi dati non vengono mai caricati, quindi lo strumento è sicuro per contenuti sensibili e funziona anche offline.

Domande frequenti

Che fine fa `app.hosts[0]`?
Diventa una lista, da quando è stata scritta questa pagina. Quelle chiavi indicizzate sono il modo in cui Spring scrive una sequenza dentro un file piatto, e anche lo strumento da YAML a properties di questo sito le scrive così — ma rileggerle dava chiavi letterali chiamate `hosts[0]` e `hosts[1]`: lo strumento non riconosceva il proprio risultato. Una serie di indici che parte da 0 senza buchi diventa ora una sequenza YAML; tutto ciò che è meno regolare resta letterale, perché indovinare una posizione sposterebbe un valore.
Perché una chiave ripetuta viene rifiutata?
`Properties.load` tiene l’ultima e non dice niente: il primo valore spariva e basta. Il verso opposto già si rifiutava di scrivere due chiavi che si appiattiscono sullo stesso nome; leggerle qui in silenzio era lo stesso buco visto dall’altra parte. Due righe identiche non confessano nulla e passano ancora.
Perché `007` esce tra virgolette?
Per restare una stringa. I valori vengono tipizzati come questo sito tipizza il CSV — `8080` è un numero, `true` un booleano — ma `007` è un identificatore i cui zeri contano, quindi resta testo. Le virgolette proteggono anche ciò che un lettore YAML 1.1 leggerebbe male: `y`, `on` e `NO` sono stringhe nel tuo file e booleani per PyYAML; citati, restano sé stessi.

Convertitori correlati