Convertire YAML in JSON (ed evitare errori di indentazione)

Da YAML 1.2, qualsiasi documento JSON è uno YAML valido. Converti configurazioni YAML in JSON e fai attenzione alle trappole di indentazione e di inferenza dei tipi.

YAML e JSON sono parenti

YAML 1.2 è un superset stretto di JSON, quindi qualsiasi documento JSON è già YAML valido. Convertire YAML in JSON significa soprattutto tradurre una struttura basata sull’indentazione in parentesi graffe e quadre.

Regole di indentazione

YAML vieta i tab per l’indentazione — usa gli spazi e tieni le chiavi sorelle alla stessa profondità. Un tab vagante o una chiave non allineata sono l’errore di parsing YAML più comune.

Il problema norvegese

Senza virgolette, NO, yes, on e off possono essere letti come booleani da alcuni parser, e il codice del paese NO diventa false. Metti tra virgolette quei valori per costringerli a restare stringhe.

Convertire in sicurezza

Valida prima lo YAML e poi convertilo. Quota gli scalari ambigui e conferma che numeri, date e valori con zero iniziale mantengano il tipo che ti aspetti.

Stream YAML multi-documento

Un singolo file YAML può contenere più documenti separati da '---'. JSON non ha equivalenti — converti ogni documento separatamente e, se uno strumento a valle li vuole tutti insieme, raccoglili in un array JSON. I manifest Kubernetes sono il caso più comune.

Anchor e alias

& anchor e * alias di YAML permettono di riutilizzare un nodo per riferimento, ma JSON non ha alias. Un convertitore sicuro risolve ogni alias in una copia del valore ancorato, espandendo il documento. Attenzione: tornare a YAML perde la condivisione originale.

Quando YAML perde fedeltà

Commenti, annotazioni di tag come !!binary, tag personalizzati, la differenza fra stile block e flow e l’ordine delle chiavi vanno persi quando YAML diventa JSON. Per puro interscambio di dati va bene; per configurazione editata a mano che verrà rieditata, considera YAML la fonte di verità.