YAML e un linguaggio molto piu grande di JSON. Ogni documento JSON e YAML valido, ma il contrario non e vero, il che significa che un convertitore JSON a YAML puo essere completamente corretto mentre un convertitore YAML a JSON deve rifiutare le parti di YAML che JSON non ha modo di esprimere.
Utilizzo del convertitore JSON a YAML
Scegli una direzione e una larghezza di indentazione, poi premi Converti. Scrivendo YAML, un mapping diventa una chiave per riga, un array ripete il trattino per elemento, e un null diventa una chiave senza valore alcuno.
Il bug contro il quale questo strumento protegge specificamente
Uno scalare YAML semplice che sembra un numero, un booleano, o un indicatore
YAML viene male letto come quel tipo nel momento in cui qualcosa analizza
il file all indietro. Un CAP di 01234 e il caso classico: scritto senza
virgolette, un analizzatore YAML lo legge come il numero 1234 e lo zero
iniziale e perso per sempre. Lo stesso problema colpisce una stringa che
per caso si legge come "true" o "null".
Convertendo
{"zip":"01234","active":"true","note":null,"id":12345678901234567890}
produce:
zip: '01234'
active: 'true'
note: null
id: 12345678901234567890
Entrambi i valori stringa sono specificamente tra virgolette perche
lasciarli senza virgolette cambierebbe il loro tipo al ritorno. Il null
reale e scritto senza virgolette, perche quella e l ortografia corretta
senza virgolette. Il id di venti cifre sopravvive intatto, perche passa
attraverso il flusso di token invece che un valore analizzato da
JSON.parse.
Cosa accetta il lettore e cosa rifiuta
Rileggendo YAML in JSON, lo strumento capisce un mapping, una sequenza, una stringa tra virgolette, uno scalare a blocco, una collezione a flusso, e uno scalare piatto piegato. Rifiuta ancore, alias e tag per nome invece di ignorarli silenziosamente, perche YAML non ha un equivalente per dare un alias a un valore dentro JSON e fingere il contrario produrrebbe un documento che sembra solo corretto.
Viaggio di andata e ritorno
Convertire l esempio sopra da YAML restituisce il documento originale
esatto: "01234" e "true" come stringhe, null come null, e l intero
completo di venti cifre. Quel viaggio di andata e ritorno e il vero test
di se le regole di virgolette di un convertitore sono corrette, perche
una regola sbagliata di solito si mostra solo quando riconverti e confronti.