Conversor de JSON, YAML e CSV
Roda no seu navegador; nada é enviado
Converta entre JSON, YAML e CSV em qualquer direção, com uma visualização em tabela para dados CSV.
Input · JSON
Output · YAML
Converted YAML appears here as you type.
Para que servem JSON, YAML e CSV
JSON, YAML e CSV descrevem dados como texto, mas para trabalhos diferentes. JSON é o formato das APIs web: rígido e fácil de ser lido por programas. YAML guarda as mesmas estruturas que o JSON (objetos, listas, strings, números, booleanos), mas usa indentação em vez de chaves, o que facilita editar à mão; specs OpenAPI, pipelines de CI e arquivos do Docker Compose e do Kubernetes costumam ser YAML. CSV é uma tabela: uma linha de cabeçalho com os nomes das colunas e depois uma linha por registro.
O conversor lê a entrada para um único modelo de dados e escreve no formato de destino. Os números mantêm os dígitos com que foram escritos, então um ID de 19 dígitos ou 1.50 passam sem mudança. Tudo o que a conversão precisou decidir (um valor que o YAML lê como número, um objeto aninhado achatado numa coluna, uma chave que aparece duas vezes) aparece nas notas acima da saída.
O YAML é lido com o core schema do YAML 1.2, a versão atual do padrão. true, false e null são valores; yes, no, on e off continuam strings, ao contrário de bibliotecas antigas de YAML 1.1 como o PyYAML. Ao escrever YAML, o conversor coloca entre aspas toda string que qualquer uma das versões leria como outra coisa, então "yes", "007" e "2024-01-01" são lidas como as mesmas strings em qualquer lugar.
Como usar esta ferramenta
- 1Escolha os formatos em From e To na barra de ferramentas. Cole seus dados no painel Input, arraste um arquivo para ele ou pressione Ctrl+O para abrir um (até 5 MB); abrir um arquivo .yaml, .csv ou .json já ajusta o From.
- 2Veja o resultado no painel Output. Ele atualiza enquanto você digita. Quando há CSV envolvido, a aba Table mostra as linhas e colunas.
- 3Ajuste as opções que aparecem na barra: o delimitador do CSV (ou Detect), se a primeira linha é cabeçalho, se números e true/false viram valores JSON, o aninhamento de nomes de coluna com pontos e como os arrays são escritos no CSV.
- 4Se a entrada for inválida, o painel de saída e a barra de status mostram a linha e a coluna. Pressione F8 para colocar o cursor lá.
- 5Swap (Shift+Alt+S) coloca a saída na entrada e inverte os formatos, para você conferir a ida e volta. Ctrl+Z desfaz.
- 6Copie a saída ou baixe com Ctrl+S.
Solução de problemas
- Tabs não podem ser usados para indentação em YAML
- YAML só aceita espaços para indentação. Troque os tabs do início das linhas por espaços; a maioria dos editores faz essa conversão para você.
- Um valor não pode continuar com uma linha
key: - Há uma linha indentada sob uma chave que já tem valor na própria linha. Remova o valor depois dos dois-pontos, para que as linhas indentadas virem filhas dela, ou corrija a indentação.
- Chave duplicada
- YAML exige que cada chave de um mapeamento seja única. Renomeie ou remova uma delas; o erro aponta para a segunda.
- A linha 4 tem 5 campos; o cabeçalho tem 4
- Um valor nessa linha contém o delimitador sem aspas em volta, ou falta uma coluna no cabeçalho. Coloque o valor entre aspas ("Pune, MH") ou confira o delimitador escolhido.
- CEPs ou IDs perdem os zeros à esquerda
- Vindo de CSV, valores como
007continuam texto. Vindo de YAML, um007sem aspas é o número 7 pelo padrão YAML, e as notas avisam isso; coloque-o entre aspas no YAML para mantê-lo como texto. - Vários documentos YAML não são suportados
- A entrada tem mais de um documento separado por
---, como é comum em arquivos do Kubernetes. Converta um documento por vez.
Perguntas frequentes
Quais recursos de YAML são suportados?
Mapeamentos e listas em bloco, coleções inline como [a, b] e {a: 1}, strings simples, com aspas simples e com aspas duplas em várias linhas, blocos de texto literais | e dobrados > com indicadores de chomping, comentários, âncoras e aliases, a chave de merge << e a tag !!str. Chaves complexas com ?, outras tags e vários documentos numa só entrada param com um erro que nomeia o recurso, em vez de gerar dados errados.
Como JSON aninhado é escrito em CSV?
Cada linha é um objeto do array. Objetos aninhados viram colunas com nomes com pontos, como address.city. Por padrão, arrays são escritos como texto JSON numa célula, ou espalhados por colunas numeradas (tags.0, tags.1) se você escolher In columns. As colunas são a união das chaves de todas as linhas, na ordem em que aparecem pela primeira vez. null vira uma célula vazia.
Que tipos a conversão de CSV para JSON gera?
Com Numbers ligado, um valor só vira número JSON se já estiver escrito exatamente como um (42, -1.5, 1e3), e true e false viram booleanos. 007, +5 e 1,000 continuam texto, assim como células vazias. Desligue Numbers para manter todos os valores como strings.
Meus dados são enviados para um servidor?
Não. O parse e a conversão rodam no seu navegador. Para sobreviver a um reload, o que você cola fica no session storage desta aba até você limpar ou fechar a aba. Copy link coloca a entrada no link depois do #, parte que os navegadores nunca enviam a um servidor, mas qualquer pessoa que receber o link consegue ler. Suas configurações, como os formatos e o delimitador, ficam salvas neste navegador.