Convertitori
Convertire fra formati di dati non è mai una pura traduzione, perché non esistono due formati che contengano lo stesso insieme di idee. Il CSV non ha annidamento, l’XML non ha array, YAML ha commenti che JSON non può conservare, e TypeScript ha tipi che JSON non porta con sé.
Ogni convertitore qui prende quelle decisioni in modo esplicito e riferisce quali si sono applicate al tuo documento. Un convertitore che appiattisce un array dentro una cella, o che lascia cadere una colonna comparsa solo in record successivi, o che trasforma un CAP in un numero più piccolo, dovrebbe dirlo. Quasi nessuno lo fa.
In entrambe le direzioni
I viaggi di andata e ritorno sono senza perdita solo entro certi limiti, e ogni pagina dice dove stanno i suoi.
JSON e CSV
JSON e YAML
In una sola direzione
Che cosa perde ciascuna conversione
| Conversione | Che cosa non sopravvive |
|---|---|
| Da JSON a CSV | L’annidamento, a meno che tu non lo appiattisca. L’informazione di tipo, dato che il CSV non ne ha. |
| Da CSV a JSON | Nulla, se tieni tutto come stringhe. Accendere l’inferenza dei tipi è il punto in cui i dati si danneggiano. |
| Da YAML a JSON | I commenti, per sempre. Le ancore vengono espanse sul posto. I timestamp diventano stringhe. |
| Da XML a JSON | L’ordine del contenuto misto, i namespace in quanto namespace, e la differenza fra un elemento e una lista di uno. |
| Da JSON a XML | I nomi di chiave che non sono nomi XML validi vengono riscritti e non tornano indietro. |
| Da JSON a TypeScript | Tutto a runtime. I tipi vengono cancellati quando il codice compila. |