Conversor JSON para CSV
Converta JSON para formato CSV instantaneamente. Carregue arrays ou objetos JSON, personalize delimitador e saída, baixe como CSV sem fazer upload.
Sobre o Conversor JSON para CSV
Conversor JSON para CSV é uma ferramenta online gratuita que converte dados JSON (JavaScript Object Notation) em formato CSV (Comma-Separated Values). Carregue um arquivo JSON ou cole dados JSON, escolha seu delimitador CSV e opções, e baixe o arquivo CSV convertido — tudo processado localmente no seu navegador para completa privacidade.
Este conversor segue a RFC 4180?
Sim, quanto ao escape. Qualquer campo que contenha o delimitador, uma aspa dupla ou uma quebra de linha (LF, CR ou CRLF) é envolvido em aspas duplas, e cada aspa dupla literal dentro do campo é duplicada. Por exemplo, a string Ela disse "vá, agora" é codificada como "Ela disse ""vá, agora""". Isso produz um arquivo que vai e vem fielmente por Excel, Google Sheets, LibreOffice, Pandas read_csv e PostgreSQL COPY. Por padrão as linhas terminam com um LF simples; marque "Quebras de linha do Windows (CRLF)" para emitir quebras \r\n, que é o padrão da RFC 4180 esperado por alguns importadores antigos do Windows.
Por que o Excel destrói caracteres UTF-8 como é, ñ ou 中, e como corrijo?
Excel para Windows historicamente abre arquivos CSV usando a página de código padrão do sistema (frequentemente Windows-1252 em locais ocidentais) em vez de UTF-8, corrompendo qualquer caractere não-ASCII. A correção é prefixar uma marca de ordem de bytes UTF-8 (EF BB BF) ao arquivo para que o Excel o interprete como UTF-8. Este conversor tem uma caixa de seleção "BOM UTF-8 (compatível com Excel)", ativada por padrão, que adiciona exatamente essa marca ao arquivo baixado — caracteres acentuados e CJK abrem então corretamente em qualquer versão do Excel. Se preferir um arquivo sem BOM, desmarque a caixa; Excel moderno (365, 2021+) e Excel para Mac leem UTF-8 sem BOM tranquilamente, ou você pode importar pelo assistente "Dados → De Texto/CSV" e escolher a página de código 65001 (UTF-8).
Como ele lida com objetos e arrays aninhados?
Por padrão "Achatar objetos aninhados" está ativado, então {"user":{"name":"Alice","age":30}} vira as colunas user.name e user.age em notação de ponto — a forma mais útil para analítica. Desative a opção e cada objeto aninhado é gravado como uma única string JSON em uma célula, útil quando você quer ida e volta do documento. Arrays aninhados são sempre serializados em uma string JSON compacta (por exemplo ["red","green"] vira ["red","green"] em uma célula) em vez de explodidos em linhas adicionais, então a contagem de linhas permanece previsível. Para dados profundamente hierárquicos que não mapeiam bem em uma tabela plana, considere mantê-los como NDJSON.

E se meus objetos JSON tiverem chaves diferentes de um registro para outro?
Essa heterogeneidade de esquema é a regra, não a exceção, com dados de APIs reais. O conversor escaneia cada registro, calcula a união de todas as chaves e emite uma única linha de cabeçalho contendo cada chave encontrada; células onde um registro particular não tinha valor para aquela coluna ficam vazias. O resultado é um CSV esparso mas retangular que qualquer planilha e importador SQL pode ler, então nenhum campo é descartado silenciosamente. Se metade dos seus registros tiver realmente outro formato (digamos usuários vs. pedidos), divida a entrada e converta cada conjunto separadamente em vez de fundi-los em uma tabela larga.
Quais delimitadores são suportados e como arrays de primitivos são tratados?
Escolha vírgula, ponto e vírgula, tabulação, pipe ou um caractere personalizado da lista de delimitadores — ponto e vírgula é comum em locais europeus onde a vírgula é separador decimal, e tabulação dá um TSV. O delimitador que você escolher também é o que é escapado conforme a RFC 4180. Um array de primitivos de nível superior como ["red","green","blue"] é gravado como um CSV de uma coluna com um valor por linha, e a ferramenta o reporta corretamente como uma coluna (não confunde o comprimento da primeira string com a contagem de colunas). Arrays de arrays como [["a",1],["b",2]] são gravados um subarray por linha, com a primeira linha opcionalmente tratada como cabeçalhos.
Meus dados são enviados para algum lugar e qual é o limite de tamanho?
Nada é enviado. O parsing e a conversão rodam inteiramente no seu navegador com JavaScript, então dados sensíveis de clientes, financeiros ou de API nunca saem da sua máquina. Você pode colar JSON na caixa de texto ou soltar um arquivo .json/.txt na zona de upload. Não há um limite rígido de bytes, mas o documento inteiro é mantido na memória, então arquivos muito grandes são limitados pela RAM disponível do navegador; a pré-visualização na página é truncada nos primeiros 100 KB para arquivos acima de 1 MB, enquanto o conteúdo completo ainda é gravado no arquivo baixado. Para documentos de vários gigabytes, use uma ferramenta de streaming em linha de comando como Miller, DuckDB ou jq em vez de um navegador.
