Dados e planilhas · CSV Limpador
CSV vs JSON: dois formatos de dados e as ideias sobre a estrutura por trás deles
· Fundo
csv JSON formatos de dados
CSV descreve uma tabela; JSON descreve uma árvore. Esta postagem explica de onde veio JSON, por que ele carrega tipos e aninhamentos que CSV não pode e o que significa a incompatibilidade sempre que os dados são movidos entre os dois.
A mesma lista de clientes parece completamente diferente como CSV e como JSON — por que cada formato codifica uma ideia diferente de estrutura
Uma tabela de clientes parece compacta em CSV porque cada linha empresta significado de um cabeçalho compartilhado. JSON repete nomes de propriedades em cada objeto e pode aninhar um endereço ou lista abaixo de um cliente. Os dois dossiês expressam, portanto, capacidades estruturais diferentes, mesmo quando os seus fatos visíveis se sobrepõem.
ToolAcre converte a interseção comum: um cabeçalho simples mais linhas de dados torna-se uma matriz de nível superior de objetos planos. Ele não transforma a pontuação nos cabeçalhos em ramificações nem infere matrizes de colunas repetidas. Compreender esse limite evita que um conversor plano seja confundido com um designer de modelo de dados.
CSV como uma grade — linhas e colunas, significado posicional e nada além de texto
Dentro desta implementação, CSV é uma tabela retangular de strings. A primeira linha fornece nomes de cabeçalho e cada célula posterior recebe significado de sua posição na coluna. As linhas curtas são preenchidas e as longas são avisadas, porque a posição só funciona de maneira confiável quando a largura da linha está de acordo com o cabeçalho.
Não há número nativo, booleano, objeto ou células nulas. As aspas protegem a sintaxe, mas não atribuem tipo. Uma sequência de dígitos e a palavra true permanecem valores textuais, o que mantém os identificadores estáveis e pede ao consumidor para aplicar um esquema onde ele realmente existe.
Em ToolAcre, as células CSV são strings posicionadas sob uma linha de cabeçalho
A apostila pede a origem e o histórico dos padrões do início dos anos 2000 de JSON, mas este repositório não é uma fonte para essas datas ou publicações. O comportamento verificável é que o navegador usa `JSON.parse` e `JSON.stringify`, aceitando uma matriz de objetos de nível superior para conversão em uma tabela.
JSON inválido recebe um erro de análise específico, uma raiz que não é de array é rejeitada e arrays contendo primitivos não são suportados. Esses limites de tempo de execução são mais importantes para o visitante do que uma cronologia não citada. O contexto histórico deve provir de padrões primários fora do conjunto de fontes desta tarefa.
O histórico dos padrões JSON está fora da evidência do repositório; a forma de tempo de execução suportada é verificável
Um objeto JSON carrega cada chave ao lado de seu valor, enquanto uma célula CSV depende do cabeçalho no mesmo índice. ToolAcre calcula chaves sem ambiguidade uma vez e depois mapeia cada linha por posição. As células representadas ausentes tornam-se strings vazias, de modo que os objetos compartilham um conjunto de chaves estável.
Essa autodescrição tem tamanho e custo de repetição, mas torna cada registro JSON compreensível sem localizar separadamente um cabeçalho. Por outro lado, alterar a ordem de uma coluna CSV sem seu cabeçalho destrói o significado. A conversão deve manter nomes e posições emparelhados em toda a tabela.
Árvores versus tabelas — aninhamento, matrizes e chaves opcionais, e por que elas não têm lugar natural em uma linha
Os valores JSON podem conter objetos e matrizes, enquanto uma célula CSV não pode ramificar nativamente. Na direção reversa, ToolAcre serializa um valor aninhado com `JSON.stringify` e coloca esse texto JSON em uma célula. Ele não cria colunas address_city ou linhas de tags adicionais.
As chaves opcionais nos registros JSON tornam-se a união de colunas na ordem vista pela primeira vez, com espaços em branco onde um objeto não possui uma chave. Esse é um achatamento defensável para objetos planos esparsos. Ele não fornece um mapeamento natural para árvores arbitrárias, e a rota diz isso em vez de adivinhar.
Exemplo resolvido - um registro com um endereço aninhado e uma lista de tags, mostrado em JSON e depois forçado em colunas CSV
Uma linha CSV plana `id,name,city` seguida por `001,Ada,London` é convertida de forma limpa em um objeto com três propriedades de string. Se JSON contiver `address: {city: "London"}` e `tags: ["math","code"]`, a conversão reversa grava esses valores aninhados como strings JSON nas colunas de endereço e tags.
Carregar esse CSV novamente produz strings contendo sintaxe JSON, não valores aninhados reconstruídos. Um aplicativo posterior poderia analisar essas células em seu próprio esquema, mas ToolAcre não. A comparação trabalhada isola exatamente onde termina a estrutura da tabela e começa a estrutura da árvore.
Exemplo resolvido: campos simples são convertidos diretamente, enquanto JSON aninhados são preservados apenas como texto de célula ao contrário
JSON Linhas, linguagens de esquema e analisadores de streaming estão fora da implementação. A saída é uma matriz recuada e a entrada do arquivo é lida na memória antes da conversão. Não infira o streaming registro por registro a partir da presença de um trabalhador de análise.
Da mesma forma, a ferramenta não valida propriedades ou intervalos numéricos obrigatórios. Ele protege as chaves dos objetos contra cabeçalhos em branco e duplicados e informa o formato das linhas, mas a correção semântica continua sendo uma responsabilidade do consumidor. A sintaxe simples pode ser válida enquanto os dados de negócios estão errados.
Saiba para qual estrutura você está migrando - como o limpador ToolAcre CSV converte dados tabulares simples entre CSV e JSON
Saiba qual estrutura o destino espera. Para exportações simples, ToolAcre fornece uma ponte transparente: os cabeçalhos tornam-se chaves exclusivas, as linhas tornam-se objetos e os valores permanecem strings. Para modelos de aplicativos aninhados, defina um mapeamento em vez de forçar ramificações por meio de convenções de nomenclatura acidental de colunas.
Visualize a tabela, resolva linhas irregulares e inspecione o JSON gerado antes do download. O conversor é mais forte quando usado em sua estreita interseção de formatos. Isso não apaga sua diferença conceitual, e um fluxo de trabalho confiável não deveria exigir isso.