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,trueun booleano. 007resta una stringa. Anche1e3, e tutto ciò il cui testo porta più del suo valore.- Gli scalari ambigui vengono citati.
y,oneNOsono 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.