I confini della conversione JSON ↔ YAML e XML
L'affermazione che JSON è un sottoinsieme di YAML garantisce una sola direzione, e XML non ha alcuna mappatura JSON ufficiale — tutto si basa sulla convenzione.
La conversione tra JSON e YAML, XML, CSV, TypeScript, Java, Go e SQL non è mai senza perdite. Ciò che conta è dichiarare esplicitamente dove avviene la perdita.
8 articoliL'affermazione che JSON è un sottoinsieme di YAML garantisce una sola direzione, e XML non ha alcuna mappatura JSON ufficiale — tutto si basa sulla convenzione.
CSV è bidimensionale, JSON ha forma ad albero. La parte difficile della conversione non è il codice — è decidere in anticipo come appiattire gli array e come preservare i tipi.
Strutture annidate, campi incoerenti e array di array sono i punti in cui la conversione da JSON a foglio di calcolo si rompe. Quattro approcci ordinati per tempo di risultato, ciascuno con i suoi compromessi.
Trasformare JSON in istruzioni SQL INSERT nasconde la separazione delle tabelle annidate, il rapporto tra NULL e campo mancante, l'escape e le divergenze tra dialetti. Istruzioni eseguibili e tabelle di confronto per ogni trappola.
Generare un'interfaccia da un JSON di esempio è metà del lavoro: campi opzionali, null, unioni, date e interi grandi richiedono una revisione umana, e i tipi non forniscono alcuna validazione a runtime.
Il comando più ricopiato delle guide, yq -P input.json > output.yaml, produce ancora JSON su yq v4. Questo articolo misura yq v4.44.6, PyYAML 6.0.3 e js-yaml su un campione da 2.39 MB, spiega perché l'estensione dell'input decide il formato di output e mostra le scritture corrette per conversione batch, virgolette, indentazione e precisione dei grandi interi.
Nove esperimenti su un convertitore reale: la strategia "chiavi della prima riga" perde campi in silenzio, null, assenza e stringa vuota diventano tutti celle vuote, un intero a 20 cifre perde precisione già in JSON.parse, e un punto in una chiave fa collidere due percorsi diversi nella stessa colonna. Come si costruisce l'intestazione, quali valori si deformano e come scegliere una strategia in base all'uso a valle.
Uno sguardo pratico a ciò che un generatore JSON-to-Java emette davvero — i numeri diventano Double, gli oggetti annidati diventano classi interne statiche e non viene prodotta nemmeno un'annotazione Jackson. Precisione monetaria, rinomina dei campi, type erasure, campi sconosciuti e date sono le cinque cose che devi aggiungere tu stesso, con codice pronto da copiare per ognuna.