UltKit

Convertitore da JSON a YAML

Trasforma il JSON in YAML facile da leggere, revisionare e commentare. Si caricano i file .json e si ottengono file .yaml indentati con le stesse chiavi, gli stessi valori e lo stesso ordine, pronti da inserire in un repository.

Convertitore di dati

oppure trascina qui File CSV, TSV, TXT … ·

Max 95 MB per file· Fino a 20 file· Eliminati dopo 30 minuti

Output

I file vengono elaborati sui nostri server ed eliminati dopo 30 minuti.

Come usare questo strumento

  1. 1

    Aggiungere i file JSON

    Carica risposte API, impostazioni esportate o manifest generati in formato .json, fino a 20 file e 95 MB ciascuno. Ogni file deve contenere un solo valore JSON valido.

  2. 2

    Lasciare le impostazioni predefinite

    YAML è già selezionato in Converti in. Per un file di configurazione non serve cambiare altro; l'output usa un'indentazione di due spazi.

  3. 3

    Convertire e fare il commit

    Premi Converti in YAML, scarica i file .yaml, aggiungi commenti dove il prossimo lettore ne avrà bisogno e fai il commit.

Risposta

Come convertire JSON in YAML?

Carica il file .json e premi Converti in YAML. Gli oggetti diventano blocchi chiave: valore indentati, gli array diventano elenchi con trattini e le stringhe che YAML potrebbe interpretare male mantengono le virgolette.

Perché convertire JSON in YAML per i file di configurazione

Gran parte del JSON è prodotto da software: una risposta API, un'esportazione di impostazioni, l'output di un generatore. Gran parte dello YAML è mantenuta da persone. La conversione segna di solito il momento in cui i dati smettono di essere output di una macchina e diventano qualcosa di cui un team è responsabile, come un manifest di deploy nel repository Git, una pipeline CI o un insieme di variabili Ansible.

Un caso tipico: si chiama un'API cloud, si ottiene una descrizione JSON di 200 righe di una risorsa e la si vuole conservare come infrastruttura come codice. Convertendo si ottiene un file senza parentesi graffe e virgole, in cui una modifica di una riga produce un diff di una riga e i valori insoliti si possono spiegare nei commenti. Lo stesso vale per fixture di test e file di traduzione modificati da chi non sviluppa. Se invece serve una tabella piatta, per un foglio di calcolo o un report, da JSON a CSV è più adatto.

Strumenti che usano file di configurazione YAML

Dove finisce di solito il YAML convertito
EnteRequisitoFonte
GitHub ActionsI workflow si trovano in .github/workflows come file .yml o .yamlGitHub Docs
GitLab CI/CDLa pipeline è definita in .gitlab-ci.yml nella radice del repositoryGitLab Docs
Docker ComposeI servizi sono descritti in compose.yaml (in precedenza docker-compose.yml)Docker Docs
AnsiblePlaybook e file di variabili sono scritti in YAMLAnsible Docs
KubernetesI manifest accettano JSON o YAML; documentazione e chart Helm usano YAMLKubernetes

Esempio da JSON a YAML con valori insidiosi

Output YAML per {"name":"api","version":"1.10","debug":false,"tags":["web","eu"],"country":"NO"}
name: api
version: "1.10"
debug: false
tags:
  - web
  - ue
country: "NO"

Cosa offre YAML

  • Commenti con #
  • Diff più brevi nelle revisioni del codice
  • Niente parentesi graffe, virgole o virgolette nella maggior parte delle righe
  • Testo su più righe con blocchi scalari |

Cosa tenere presente

  • L'indentazione ha significato, quindi uno spazio di troppo cambia la struttura
  • Le tabulazioni non sono ammesse per l'indentazione
  • Le stringhe senza virgolette possono essere lette come numeri o booleani
  • Parser più lenti e meno uniformi rispetto a JSON

L'esempio mostra perché non basta sostituire le parentesi graffe. La versione 1.10 è una stringa nel JSON; scritta senza virgolette in YAML verrebbe letta come il numero 1.1. NO, il codice ISO della Norvegia, verrebbe letto come false dai parser YAML 1.1 come PyYAML. Entrambi mantengono le virgolette, mentre i veri numeri e booleani restano senza.

JSON e YAML a confronto

JSON

JavaScript Object Notation

JSON è un formato di testo leggero per dati strutturati, reso popolare da Douglas Crockford all'inizio degli anni 2000 e standardizzato come RFC 8259 ed ECMA-404. Rappresenta oggetti, array, stringhe, numeri, booleani e null con una sintassi semplice e leggibile. È il formato predefinito per le API web, i file di configurazione e lo scambio di dati tra app in quasi tutti i linguaggi di programmazione. Non prevede commenti, date o schemi integrati e i file annidati di grandi dimensioni sono difficili da leggere senza un visualizzatore.

Compressione
–
Trasparenza
–
Animazione
–
Introdotto
2001 · Douglas Crockford
Convertitore JSON

YAML

YAML

YAML ("YAML Ain't Markup Language") è un formato di dati leggibile dalle persone, rilasciato per la prima volta nel 2001. Usa l'indentazione al posto delle parentesi, supporta i commenti ed è un sovrainsieme di JSON. È molto usato per la configurazione in Docker Compose, Kubernetes, GitHub Actions e in molte applicazioni. Poiché si basa sugli spazi, basta uno spazio fuori posto per comprometterlo, e alcuni valori, come "no" o le date, possono essere interpretati in modo inatteso.

Compressione
–
Trasparenza
–
Animazione
–
Introdotto
2001 · Clark Evans, Ingy döt Net, Oren Ben-Kiki
Convertitore YAML

Si converte da JSON a YAML quando dati generati o provenienti da API devono diventare un file di configurazione che le persone mantengono, rivedono nelle pull request e annotano con commenti.

Domande sul convertitore da JSON a YAML

Il JSON è già YAML valido?

Con YAML 1.2 sì: la revisione del 2009 è stata scritta in modo che ogni documento JSON sia anche un documento YAML. Si potrebbe incollare il JSON in un file .yaml e la maggior parte degli strumenti lo accetterebbe. La conversione serve alla leggibilità: lo stile a blocchi, senza parentesi graffe, virgolette e virgole, è quello che si aspettano i revisori e chi manterrà il file.

Perché nel YAML alcuni valori sono tra virgolette?

Perché senza virgolette YAML le leggerebbe come un altro tipo. Una versione come 1.10 diventerebbe il numero 1.1, e yes oppure off potrebbero diventare booleani nei parser meno recenti. Le stringhe che sembrano numeri, date o booleani hanno bisogno delle virgolette per restare stringhe, quindi una conversione accurata le mantiene.

Si possono aggiungere commenti dopo la conversione?

Sì, ed è un motivo comune per convertire. Scrivi # seguito dalla nota a fine riga o su una riga a sé. JSON non permetteva di spiegare perché un valore sia impostato così; YAML sì, e questo rende più semplici revisioni e passaggi di consegne.

Perché il mio YAML dà un errore per un carattere di tabulazione?

La specifica YAML vieta le tabulazioni per l'indentazione: contano solo gli spazi. Il convertitore scrive spazi, ma un editor configurato per inserire tabulazioni può rovinare il file alla modifica successiva. Impostare l'editor in modo che usi gli spazi per i file .yaml.

Kubernetes accetta il manifest convertito?

kubectl legge sia JSON sia YAML, quindi i dati sono gli stessi in entrambi i casi; la versione YAML è semplicemente quella usata dalla maggior parte della documentazione, dei chart Helm e delle revisioni del codice. Se in seguito servisse di nuovo il JSON per jq o una chiamata API, da YAML a JSON fa il percorso inverso.