# Conversor de CSV e JSON

Converte CSV num array JSON de objetos ou arrays, ou JSON de volta para CSV. Deteta o separador e lê ficheiros Excel com ponto e vírgula e vírgula decimal.

https://codeknife.dev/pt/csv-json/

## O que faz

Converte CSV num array JSON e JSON de volta para CSV. Lê CSV segundo a RFC 4180: campos entre aspas, aspas duplas e quebras de linha dentro de um campo.

## Como usar

1. Cole CSV ou JSON, ou largue um ficheiro.
2. Escolha **CSV para JSON** ou **JSON para CSV**. Deixe separador e decimais em **Detetar**, ou defina-os você.
3. Copie ou transfira o resultado, ou use **Usar saída como entrada** para o tornar a próxima entrada.

## Exemplos

O CSV `nome;preço` / `queijo;12,50` passa a `[{"nome": "queijo", "preço": 12.5}]`, e com **Linha de cabeçalho** desligada, a `[["nome", "preço"], ["queijo", 12.5]]`.

## Bom saber

- Com a linha de cabeçalho, cada linha passa a ser um objeto com os nomes das colunas como chaves; uma linha com outro número de campos é indicada pelo seu número.
- O separador é detetado nas primeiras linhas: vírgula, ponto e vírgula, tabulação ou barra vertical. O Excel com ponto e vírgula e vírgula decimal é lido por **Detetar** como 12.5.
- Um valor só passa a número se for lido de volta igual, por isso `007`, `1.50` e números muito longos continuam texto. Desative a leitura de números para manter tudo como texto.
- JSON para CSV precisa de um array de objetos (as colunas são a união das chaves) ou de um array de arrays. Os valores aninhados são escritos como texto JSON.

## Como é lido um ficheiro CSV?

Segundo a RFC 4180: os campos são separados por um separador, um campo entre aspas pode conter esse separador e quebras de linha, e umas aspas lá dentro escrevem-se duas vezes. O separador é detetado nas primeiras linhas: vírgula, ponto e vírgula, tabulação ou barra vertical.

## Perguntas frequentes

### Porque é que os meus números passam a texto, ou ao contrário?

Um valor só passa a número se for lido de volta exatamente igual, por isso 007, 1.50 e números muito longos continuam texto. Desative “Ler números e true/false” para manter tudo como texto.

### O que é o formato Excel com ponto e vírgula?

O Excel em Portugal escreve pontos e vírgulas entre os campos e uma vírgula como marca decimal. Com separador ou decimais em “Detetar”, 12,50 é lido como 12.5, e JSON para CSV escreve um ficheiro com ponto e vírgula se escolher a vírgula decimal.

### Os meus dados são enviados para algum lado?

Não. A conversão acontece no seu navegador. O que cola nunca é enviado para os nossos servidores.