Conversores
Converter entre formatos de dados nunca é tradução pura, porque não existem dois formatos que carreguem o mesmo conjunto de ideias. CSV não tem aninhamento, XML não tem arrays, YAML tem comentários que o JSON não consegue guardar, e o TypeScript tem tipos que o JSON não carrega.
Cada conversor aqui toma essas decisões explicitamente e relata as que se aplicaram ao seu documento. Um conversor que achata um array numa célula, ou descarta uma coluna que só apareceu em registros posteriores, ou transforma um CEP num número menor, deveria dizer isso. A maioria não diz.
Nos dois sentidos
Idas e voltas só são sem perda dentro de certos limites, e cada página diz onde estão os seus.
JSON e CSV
JSON e YAML
Num sentido só
O que cada conversão perde
| Conversão | O que não sobrevive |
|---|---|
| JSON para CSV | O aninhamento, a menos que você achate. A informação de tipo, já que o CSV não tem nenhuma. |
| CSV para JSON | Nada, se você mantiver tudo como string. Ligar a inferência de tipos é onde os dados se estragam. |
| YAML para JSON | Os comentários, permanentemente. Âncoras são expandidas no lugar. Timestamps viram strings. |
| XML para JSON | A ordem do conteúdo misto, os namespaces enquanto namespaces, e a diferença entre um elemento e uma lista de um. |
| JSON para XML | Nomes de chave que não são nomes XML válidos são reescritos e não voltam. |
| JSON para TypeScript | Tudo em tempo de execução. Os tipos são apagados quando o código compila. |