JSON para CSV

Cole um array JSON de objetos (a forma que a maioria das APIs retorna para listas) e o conversor transforma cada objeto em uma linha CSV. Detecta automaticamente os cabeçalhos das colunas a partir das chaves, achata objetos aninhados em colunas de notação de ponto e lida com arrays juntando com um separador ou criando uma coluna por índice.

Como converter JSON para CSV

  1. 1

    Cole o array JSON

    Geralmente `[{...}, {...}, ...]`. Se você tiver um payload envolto como `{"data": [...]}`, forneça o array interno.

  2. 2

    Escolha o delimitador e o estilo de citação

    Vírgula, tabulação, ponto e vírgula ou pipe. Escolha se deseja sempre citar ou apenas quando necessário.

  3. 3

    Escolha o tratamento de objetos aninhados

    Achatar para `user.name`, `user.email`, ou serializar como strings JSON dentro de uma única coluna.

  4. 4

    Baixe o CSV

    Salve o CSV ou copie-o. Os cabeçalhos vão na primeira linha, a menos que você os desative.

Exemplo

Entrada:

[
  { "id": 1, "user": { "name": "Alice", "email": "a@a.com" }, "tags": ["admin"] },
  { "id": 2, "user": { "name": "Bob",   "email": "b@b.com" }, "tags": ["user", "beta"] }
]

Saída (achatar aninhados, juntar arrays):

id,user.name,user.email,tags
1,Alice,a@a.com,admin
2,Bob,b@b.com,"user,beta"

Escolha do delimitador

Delimitador Usar quando
, (vírgula) Padrão, funciona com Excel e Google Sheets
; (ponto e vírgula) Locais do Excel europeus que tratam , como decimal
\t (tabulação) Colagem limpa no Google Sheets, evita problemas de citação
` ` (pipe)

Regras de citação

Um campo deve ser citado quando contém:

  • o delimitador
  • uma aspa dupla (que é escapada duplicando: " -> "")
  • uma nova linha

“Citar sempre” é mais seguro para compatibilidade entre ferramentas; “citar apenas quando necessário” torna o arquivo mais fácil de ler manualmente.

Tratamento de objetos aninhados

  • Achatar: { user: { name: "A" } } se torna uma coluna user.name. Caminhos profundos se tornam a.b.c.d.
  • String JSON: o objeto aninhado permanece como um valor JSON de coluna única: "{\"name\":\"A\"}". Útil quando ferramentas a jusante podem analisá-lo.
  • Stringificar: junta com um separador, perdendo a estrutura.

Tratamento de arrays

  • Juntar: ["a", "b"] se torna "a,b" em uma única coluna.
  • Colunas indexadas: produz tags.0, tags.1, tags.2, funciona apenas quando o comprimento do array é consistente.
  • Apenas o primeiro elemento: pega tags[0] e ignora o resto.

Erros comuns

  • Chaves desiguais entre objetos. Se um objeto tem phone e outro não, o CSV terá uma coluna phone com células vazias para as linhas ausentes. Sempre valide se o conjunto de chaves é consistente.
  • Esquecer o BOM para Excel. O Excel no Windows lê CSVs UTF-8 sem BOM como Latin-1 e embaralha caracteres acentuados. A ferramenta oferece uma opção de “prefixar UTF-8 BOM” para esse caso.
  • Incorporar novas linhas em valores. Legal no CSV RFC 4180, mas alguns importadores falham. Se seu alvo for frágil, substitua \n por um espaço ou token \\n.
  • Usar Excel como um formato de ida e volta. O Excel converte silenciosamente 007 para 7, trunca números longos e corrompe zeros à esquerda em IDs. Para integridade dos dados, use CSV com um analisador adequado.

Perguntas frequentes

Sim, CSV é inerentemente tabular, o que mapeia para [{...}, {...}, ...]. Se seu payload estiver envolto ({"data": [...]}), passe apenas o array interno, ou deixe a ferramenta detectá-lo automaticamente.

Você escolhe: achatar para colunas de notação de ponto (user.name, user.email), manter como strings JSON em uma única coluna, ou stringificar com um separador. Achatar é o padrão e geralmente é o que você deseja.

Sim, se você escolher um delimitador de vírgula e o local corresponder. Para o Excel europeu, mude para ponto e vírgula. Para caracteres UTF-8, ative a opção “prefixar UTF-8 BOM” para que o Excel detecte a codificação.

Não. A conversão ocorre no seu navegador; o JSON nunca sai da sua máquina. Seguro para respostas de API sensíveis ou dumps de dados internos.

Ferramentas relacionadas

Ferramenta disponível em outros idiomas