DataSwap Convertitori di file e dati veloci, senza registrazione

Convertitore da JSON a YAML

Incolla il tuo JSON qui sotto per ottenere uno YAML leggibile — oggetti e array annidati con indentazione corretta in stile blocco, e stringhe tra virgolette solo quando lasciarle senza sarebbe ambiguo. Nulla di ciò che incolli viene caricato da nessuna parte; la conversione avviene interamente nel tuo browser.

Ottieni uno YAML che si legge come se fosse scritto a mano

Gli oggetti diventano righe chiave: valore, con indentazione di 2 spazi per livello di annidamento; quando un valore è a sua volta un oggetto o un array, passa a righe proprie indentate invece di restare in linea. Gli array diventano una lista a blocchi con prefisso - allo stesso livello di indentazione della chiave che li possiede — mai un [a, b] in stile flusso. Le stringhe vengono avvolte in virgolette doppie solo quando lasciarle senza sarebbe davvero ambiguo — vuote, che iniziano con un carattere riservato, che contengono : (due punti più uno spazio, che YAML tratterebbe come il proprio separatore), o che coincidono con una parola chiave o un numero YAML. Tutto il resto resta senza virgolette per leggibilità.

Esempio pratico

Input:

{"name": "Alice", "age": 30, "active": true, "tags": ["a", "b"], "address": {"city": "Rome", "zip": "00100"}, "note": "value: with colon"}

diventa:

name: Alice
age: 30
active: true
tags:
- a
- b
address:
  city: Rome
  zip: "00100"
note: "value: with colon"

Nota che tags diventa una lista indentata corretta invece di restare in linea, address diventa una mappatura annidata con city e zip indentati sotto di essa, il valore "00100" di zip viene messo tra virgolette perché altrimenti verrebbe letto come un numero, e il valore di note viene messo tra virgolette perché : with colon contiene due punti seguiti da uno spazio — esattamente la sequenza che YAML usa per separare una chiave dal suo valore.

Domande frequenti

Perché il mio array appare come una lista indentata invece di [a, b]?

Questo convertitore usa sempre lo stile a blocchi di YAML, non lo stile di flusso — un array `tags` diventa una lista con prefisso `-` su righe proprie indentate, invece di un `[a, b]` in linea. Lo stile a blocchi è come si presenta la maggior parte dello YAML scritto a mano (e l'output della maggior parte degli strumenti YAML), e resta leggibile e facile da confrontare anche quando la lista è lunga.

Perché alcune delle mie stringhe sono tra virgolette e altre no?

Una stringa viene messa tra virgolette solo quando lasciarla senza sarebbe davvero ambiguo: se è vuota, inizia con un carattere riservato come `- ? : # & * ! | > ' " % @`, contiene `: ` (due punti seguiti da uno spazio, che YAML interpreterebbe come il proprio separatore chiave/valore), oppure verrebbe confusa con una parola chiave o un numero YAML — il testo letterale "true", "false", "null", oppure qualcosa come "123" o "00100" che viene interpretato come numero. Tutto il resto resta senza virgolette per leggibilità, perché le virgolette superflue aggiungono solo rumore visivo.

Questo strumento valida il mio JSON prima di convertirlo?

Sì — l'analisi passa attraverso JSON.parse, quindi un JSON non valido mostra il vero messaggio SyntaxError del browser invece di generare silenziosamente uno YAML rotto. Correggi il problema segnalato e la conversione riparte automaticamente.

Il mio JSON viene caricato da qualche parte?

No. L'analisi e la generazione dello YAML avvengono interamente nel tuo browser — nulla di ciò che incolli viene inviato, salvato o registrato su un server. Vale per ogni strumento di questo sito.

Cosa succede a oggetti e array vuoti?

Un oggetto vuoto diventa `{}` e un array vuoto diventa `[]`, scritti in linea sulla stessa riga della chiave che li possiede — esattamente come la sintassi dei contenitori vuoti di JSON, dato che non c'è nulla da elencare su righe separate.