Il codice di questa pagina non è partito.

Se apri index.html direttamente da una cartella, i moduli JavaScript restano bloccati, quindi non succederà niente quando sceglierai un file. Servi invece la cartella via http:

powershell -ExecutionPolicy Bypass -File serve.ps1

Poi apri http://localhost:8080/.

Da YAML a JSON — e da JSON di nuovo a YAML

Tutte e due le direzioni, e ti dice quanto costa ciascuna. Niente di tutto questo finisce incollato nel server di qualcun altro.

Lingua: Italiano
Vedi il codice
Qui non si caricano file YAML e JSON, mai. Non c'è nessun server.

Convertire è aritmetica su una stringa, fatta qui, in questa pagina. I due parser sono scritti a mano e stanno in src/ — shared/parse-yaml.js e shared/parse-json.js — e non c'è nient'altro. Questo strumento non ha nessuna funzione di rete di alcun tipo — niente da scaricare, niente da mandare — e qui conta più che quasi ovunque su questo sito: un file YAML di solito è una configurazione di deploy, e una configurazione di deploy di solito è piena di nomi di host, nomi di bucket e segreti.

Verifica dal vivo: verifica in corso…

Offline: verifica in corso…

Non devi crederci sulla parola: apri i DevTools, guarda la scheda di rete e converti qualcosa. Non una sola richiesta porta un carattere di quello che hai incollato. Oppure stacca internet e convertilo lo stesso.

1 Scegli la direzione

Rientro La tabulazione è offerta solo per il JSON. Lo YAML è definito in termini di spazi e una tabulazione non è un'indentazione valida al suo interno.

Ordina le chiavi di ogni oggetto In base a come si leggono le chiavi invece che ai loro code point, quindi item2 viene prima di item10.

2 Incollalo

vuoto

3 Prenditi il risultato

Ancora niente.

 

Vedi come Markdown

Come convertire YAML in JSON senza caricarlo

  1. Scegli la direzione. Da YAML a JSON oppure da JSON a YAML. La nota sotto il menù dice cosa perde quella direzione prima che tu incolli qualcosa, non dopo.
  2. Incollalo, oppure trascina il file. Va bene qualunque cosa tu possa selezionare e copiare. Un file trascinato sul selettore viene letto dal tuo browser e messo nella casella — non c'è nessun passo di caricamento da saltare — e un'estensione .json o .yaml ti imposta la direzione.
  3. Scegli l'indentazione. Due spazi, quattro, oppure una tabulazione. La tabulazione è offerta solo per il JSON: lo YAML è definito in termini di spazi, e una tabulazione non è un'indentazione valida al suo interno.
  4. Leggi l'errore dove sta l'errore. Un parser che qui fallisce dice cosa ha trovato e su quale riga e colonna, invece di “token inatteso alla posizione 4193”. Di solito basta per sistemare un file di configurazione senza aprire nient'altro.
  5. Prenditi il risultato. Copialo, oppure scaricalo come file, con il nome del formato in cui è uscito.

Domande

Il mio YAML viene caricato da qualche parte?

No. Tutti e due i parser e tutti e due gli stampatori di questa pagina sono funzioni che girano nel tuo browser, sul tuo hardware. Questo strumento non ha nessuna funzione di rete di alcun tipo — non scarica mai niente e non manda mai niente — e la Content-Security-Policy della pagina elenca ogni indirizzo che può contattare, e nessuno di questi è nostro. È proprio questo il motivo per usarlo su una configurazione di deploy: sono piene di nomi di host, nomi di bucket e ogni tanto di un segreto che qualcuno voleva spostare, e incollarne una nel convertitore di qualcun altro vuol dire dargliela.

Cosa si perde convertendo YAML in JSON?

I commenti, perché JSON non ha dove metterli. Ancore, alias e tag vengono rifiutati del tutto invece che indovinati — ognuno di loro dice qualcosa che JSON non sa dire, e un convertitore che scegliesse di nascosto un'interpretazione ti darebbe un documento che non è quello che diceva il file. L'altra direzione non perde niente: ogni documento JSON è già un documento YAML.

Il mio YAML dice no e il JSON è uscito come stringa. Perché?

Perché è una stringa, e qui si legge YAML 1.2 invece di 1.1. In YAML 1.1 yes, no, on e off erano booleani, ed è il famoso bug che trasforma il codice della Norvegia in false. YAML 1.2 ha lasciato perdere, e anche questo: solo true, false, null e ~ vengono letti come qualcosa di diverso dal testo. Nell'altra direzione quelle parole vengono riscritte tra virgolette, anche se qui verrebbero lette come testo pure senza, perché quello che aprirà il file dopo magari no. PyYAML usa ancora la 1.1 come impostazione predefinita. Leggere in modo severo e scrivere in modo prudente è l'unica combinazione giusta in tutte e due le direzioni.

Mantiene l'ordine delle mie chiavi?

Sì, in tutte e due le direzioni, ed è più difficile di quanto sembri. Un convertitore costruito su JSON.parse sposta di nascosto in testa le chiavi che sembrano interi, quindi {"10":a,"2":b} torna come {"2":b,"10":a}. I numeri tengono le cifre che hai scritto, quindi un id di conto da venti cifre non perde le ultime tre per colpa di un double. Se invece li vuoi ordinati c'è una casella, e ordina in base a come si leggono le chiavi invece che ai loro code point.

Può convertire più documenti YAML in una volta?

No, e lo dice invece di sceglierne uno. Un file con separatori --- contiene più di un documento, e JSON non ha nessuna forma che voglia dire “più documenti”: un array sarebbe un'affermazione che il file non ha mai fatto. Convertili uno alla volta.

Perché qui non c'è un formattatore YAML?

Perché lo YAML non ha una forma compattata che valga la pena scrivere: la forma corta è lo stile flow, che è illeggibile, e illeggibile è il contrario del motivo per cui si tiene un file in YAML. Sistemare JSON, XML, HTML e CSS è il lavoro del formattatore JSON, e quello sistema anche lo YAML.

Quanto può essere grande il file?

Qui non c'è nessun limite impostato, perché non c'è un server che lo paga. Il tetto vero è il tuo dispositivo: qualche megabyte di YAML va bene, e con un documento molto lungo la pagina aspetta una pausa nella tua digitazione prima di convertire, invece di litigarti la tastiera.

È gratis, e mi serve un account?

È gratis, e non c'è account, non c'è registrazione, non c'è periodo di prova e non c'è limite a quanto incolli. Il sito ha della pubblicità, ed è quella che lo mantiene; agli annunci non arriva niente sul tuo testo.

Funziona offline?

Sì. Carica la pagina una volta, poi stacca internet e continua a funzionare. È anche il modo più semplice per dimostrare che non viene caricato niente: uno strumento che mandasse via la tua configurazione per convertirla si fermerebbe nel momento in cui stacchi la spina.