YAML vs JSON a confronto: sintassi, commenti, tipi, testo su più righe e la trappola yes/no. Verifica come viene letto un valore senza virgolette e chiudi una volta per tutte la questione .yaml vs .yml.
JSON è un formato di dati rigoroso pensato per i programmi: graffe, parentesi quadre, stringhe tra virgolette doppie e niente commenti. YAML esprime gli stessi dati con l'indentazione, ammette commenti e testo su più righe, e la versione 1.2 è stata progettata come superset di JSON. Scegli JSON per le API e l'output delle macchine, YAML per i file che le persone modificano a mano.
YAML e JSON confrontati caratteristica per caratteristica
Entrambi i formati descrivono le stesse cose: mappe, liste, stringhe, numeri, booleani e null. Le vere differenze sono chi legge il file e quanto è tollerante il parser. Prova il verificatore di valori qui sotto per vedere come viene tipizzato un valore senza virgolette, poi leggi gli esempi affiancati e le insidie che colpiscono chi passa da un formato all'altro.
YAML 1.2 è stato scritto per essere un superset rigoroso di JSON, quindi in pratica un documento JSON si carica in un parser YAML 1.2. Esistono casi limite, come le chiavi duplicate, che i parser JSON spesso tollerano ma YAML vieta.
Usa .yaml. La RFC 9512, che registra il media type application/yaml, indica .yaml come estensione preferita e nota che .yml è ancora in uso. Entrambe funzionano in strumenti come GitHub Actions, quindi la scelta riguarda la coerenza all'interno di un progetto.
YAML 1.1 trattava parole come yes, no, on, off, y e n come booleani. Il core schema di YAML 1.2 accetta solo true e false in tre varianti di maiuscole e minuscole, ma i parser più vecchi sono ancora diffusi. Mettere il valore tra virgolette elimina il dubbio.
No. La RFC 8259 elenca i token che JSON può contenere e i commenti non sono tra questi. Alcuni strumenti accettano un JSON più permissivo con commenti, ma un parser rigoroso rifiuterà il file.
La grammatica di JSON è molto più piccola, e i browser includono un parser nativo, quindi di solito è la scelta più rapida e sicura per i dati inviati in rete. I parser YAML hanno molte più regole da applicare, dall'indentazione alla tipizzazione implicita.
Le stesse impostazioni di un sito nei due formati. YAML elimina virgolette e graffe e aggiunge un commento; JSON scrive per esteso ogni stringa e ogni livello di annidamento.
Indentazione a due spazi, un commento, una lista e una stringa di versione tra virgolette perché resti testo.
Nessun commento è possibile, e ogni chiave e stringa ha le virgolette doppie.
Come viene tipizzato un valore YAML senza virgolette, e la versione sicura
Scrivi un valore come apparirebbe dopo i due punti in un file YAML, senza virgolette. Il verificatore applica le regole del core schema di YAML 1.2, l'elenco dei booleani di YAML 1.1 e la grammatica JSON.
Valore senza virgolette
Core schema di YAML 1.2
Parser YAML 1.1
JSON, scritto così com'è
Lo stesso valore in JSON
booleano {v} (YAML 1.1 legge questa parola come booleano)
Nessuna trappola dei booleani in stile yes/no per questo valore
Valore JSON valido
Non è JSON valido se non tra virgolette
JSON non ha modo di scrivere questo numero
Provane uno
Inizia gratis · Nessuna carta di credito richiesta