Che cosa fa questo strumento
YAML è un soprainsieme di JSON, quindi gran parte della conversione fila liscia: le mappe diventano oggetti, le sequenze array, gli scalari stringhe, numeri, booleani o null.
Quel che segue è il punto in cui smette di filare liscia.
Gli identificatori lunghi conservano le cifre
id: 12345678901234567890
{ "id": 12345678901234567890 }
Sembra ordinario, ed è proprio il punto. Un numero JSON è un valore in virgola mobile a doppia precisione e regge una quindicina di cifre; un identificatore di venti — uno snowflake di Twitter, un bigint di PostgreSQL — prima tornava come un altro numero, in silenzio. Ora le cifre sono lette esatte e riscritte immutate.
Le ancore vengono espanse, perché JSON non le regge
defaults: &d
retries: 3
web:
<<: *d
diventa due copie di retries: 3. JSON non conosce un valore presente in due punti, quindi la condivisione non sopravvive al passaggio. L’uscita è più grande dell’ingresso e nulla va perduto — tranne la relazione, e conviene saperlo prima di convertire un file costruito sulle ancore e riconvertirlo.
Più documenti diventano un array
--- separa i documenti. JSON non ha separatore, quindi un flusso di tre documenti diventa un array di tre valori. Un documento unico non viene impacchettato: ottieni l’oggetto.
I nulli, tutti e tre
~, null e un valore vuoto significano null in YAML, e tutti e tre diventano null. È uno dei pochi punti in cui JSON è più semplice di YAML, e non il contrario.
Che cosa questa conversione non può decidere per te
yes è letto come la stringa "yes", perché così dice YAML 1.2. Un file scritto per PyYAML, che applica YAML 1.1, intendeva il booleano vero.
Nulla nel file dice quale versione avesse in mente il suo autore. Se il tuo YAML viene da uno strumento Python e un yes, no o on nudo conta, mettilo tra virgolette alla sorgente — e sappi che l’ambiguità è nel file, non nel convertitore.
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.