Vai al contenuto

Conversione JSON ⇄ YAML

JSON ⇄ YAML

Converte nei due sensi conservando l’ordine delle chiavi e scegliendo per il lato YAML lo stile a blocchi o quello in linea.

Converte fra YAML, JSON e TOML in qualunque direzione, nel browser. I parser sono scritti per questo sito invece di essere presi da npm, ed è il motivo per cui la pagina può elencare esattamente che cosa rifiuta — ancore, tag, flussi multi-documento — invece di leggerli male in silenzio.

🔒 Funziona interamente nel tuo browserjsonyamlconvert
Da
Letto come YAML.
A

Ingresso

Trascina un file .yaml, .json o .toml

Letto in questa scheda. Non viene caricato niente.

JSON in uscita

Sono scritti qui invece che presi da npm, il che vuol dire che il sottoinsieme è scelto e non ereditato. Tutto quello che sta in questo elenco viene rifiutato per nome invece di essere letto male.

Come si usa

  1. Incollare la configurazione

    Il formato viene riconosciuto dal testo, e l’etichetta sotto il selettore dice quale è stato scelto. Se l’ipotesi è sbagliata la si forza a mano: un file JSON è anche YAML valido, quindi un documento `{ }` può andare da entrambe le parti.

  2. Scegliere la destinazione

    YAML per un manifest Kubernetes o un file di CI, JSON per tutto quello che viene analizzato da un programma, TOML per il file di progetto di Rust o di Python.

  3. Leggere gli avvisi, non solo l’uscita

    Una conversione riuscita può comunque aver cambiato significato: un `null` scartato entrando in TOML, un `yes` letto come la stringa che è secondo YAML 1.2. Compaiono in una nota sotto l’uscita invece di restare nascosti.

  4. Aprire l’elenco della copertura quando qualcosa viene rifiutato

    La sezione richiusa in fondo nomina ogni costrutto che questi parser non gestiscono, e perché. Un rifiuto rimanda a quell’elenco invece di fallire con un errore di parser da interpretare.

Domande frequenti

Perché le mie ancore e i miei alias vengono rifiutati?

Perché espandere `*base` correttamente vuol dire implementare la semantica di merge di YAML, e sbagliarla di poco produce un file che sembra giusto e mette in produzione un’altra cosa. Espanderle a mano prima di incollare è affidabile; indovinare qui non lo è. Lo stesso motivo vale per `<<: *base`.

Perché `yes` è diventato una stringa?

Perché lo schema core di YAML 1.2 dice che lo è: solo `true` e `false` sono booleani. I parser YAML 1.1, alcuni dei quali ancora in produzione, lo leggono come booleano. La differenza viene annunciata negli avvisi quando capita, perché è esattamente il genere di cosa che cambia un rilascio.

Che cosa succede a un `null` che va verso TOML?

Viene scartato e un avviso lo dice. TOML non ha proprio un valore null, quindi le scelte erano omettere la chiave oppure inventare un segnaposto, e inventarne uno metterebbe una stringa `"null"` letterale nella configurazione di qualcuno.

I commenti vengono conservati?

No. La conversione passa per un modello di dati, e i commenti non sono dati — JSON non ha proprio un posto dove metterli. Se servono i commenti, i formattatori YAML e TOML di questo sito reindentano sul posto e li conservano.

Può ricevere da

Dopo

Questi accettano ciò che produce questo strumento, così il risultato può passare direttamente.