YAML vs JSON: quale scegliere e perché

YAML vs JSON

YAML vs JSON: differenze, insidie e .yaml vs .yml | We.Inc

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.

Domande frequenti

Ogni file JSON è YAML valido?

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.

Devo usare .yaml o .yml?

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.

Perché il mio valore YAML è diventato true o false?

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.

JSON può contenere commenti?

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.

Quale dei due si analizza più velocemente?

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.

Quando JSON è la scelta migliore

Quando YAML è la scelta migliore

Un record, scritto nei due modi

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.

Valori che cambiano tipo quando dimentichi le virgolette

Come viene tipizzato un valore YAML senza virgolette, e la versione sicura

Come verrà letto questo valore senza virgolette?

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

Correlati: Guide

Prodotto

Per chi è

Funzionalità

Risorse

Azienda

Mappa del sito