100 % locale — i tuoi dati non lasciano mai il tuo browser

YAML in JSON — ID lunghi tenuti esatti

Converti YAML in JSON. Gli interi grandi tengono tutte le cifre e più documenti diventano un array, pronto da dare a un’API o a uno script.

Istantaneo Privato Zero cookie
Indentazione

Input YAML

Output JSON

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.

Domande frequenti

Perché il mio identificatore di 20 cifre tornava sbagliato?
Perché passava per un numero in virgola mobile a doppia precisione, che regge una quindicina di cifre. `12345678901234567890` tornava `12345678901234567000`: un altro numero, senza nulla che avvertisse. Al lettore YAML si può chiedere di tenere esatti i grandi interi, e ora glielo si chiede.
Che fine fanno le mie ancore e i miei alias?
Vengono risolti: ogni `*alias` diventa una copia di ciò che la sua `&ancora` conteneva, e le chiavi di merge `<<:` sono applicate. JSON non ha modo di esprimere una condivisione, quindi non è una scelta: è l’unica traduzione fedele. Il risultato è più grande dello YAML, ed è il prezzo onesto.
Il mio file ha più documenti. Che cosa ottengo?
Un array JSON, una voce per documento. `---` separa i documenti YAML e JSON non ha equivalente; l’array è l’unica forma che li conserva tutti. Un file con un solo documento restituisce l’oggetto, non un array di uno.

Convertitori correlati