Pular para o conteúdo principal

Tabela Markdown para JSON

Este conversor transforma uma tabela no formato Markdown do GitHub em um array de JSON no seu navegador. A linha de cabeçalho fornece as chaves, as células são recortadas e os tipos são inferidos: números, booleanos e nulos, com células vazias mapeando para nulo. Pipes escapados são decodificados, a linha separadora é obrigatória e nada é enviado.

Só local

Tabela Markdown para JSON: explicação

Tabelas Markdown são como READMEs, documentações e rastreadores de problemas apresentam registros; JSON é como scripts os consomem. Uma tabela já é linhas e colunas, então a conversão é basicamente sobre nomear as colunas e decidir o que cada célula significa. Este conversor analisa tabelas Markdown no formato GitHub em um array de JSON — um objeto por linha de corpo, com chaves tiradas do cabeçalho.

A parte que exige cuidado é a tipagem. Uma célula Markdown é apenas texto, mas JSON tem números, booleanos e nulos, e uma tabela cheia de strings "42" raramente é o que qualquer consumidor downstream deseja. Este conversor infere: dígitos se tornam números, true e false se tornam booleanos, células vazias se tornam nulo. A inferência é ocasionalmente surpreendente, então as regras — incluindo CEPs com zero à esquerda — estão escritas abaixo em vez de deixadas como uma armadilha.

Tudo é executado nesta aba do navegador: sua tabela é analisada por um motor na página, o JSON é serializado ao lado, e nenhuma requisição de qualquer tipo é feita — abra o DevTools e veja o painel de Rede permanecer vazio enquanto você converte.

As tabelas fluem na outra direção com a mesma frequência — quando uma exportação de JSON precisa ir para dentro de uma documentação, o Conversor de JSON para tabela Markdown emite tabelas no formato GitHub com escape de pipes aplicado para você.

Se o lado JSON da troca é a metade menos familiar, o guia em português sobre JSON do site cobre objetos, arrays e tipos do zero.

Como a conversão realmente funciona

Markdown no formato GitHub define uma tabela como três partes: uma linha de cabeçalho com nomes de coluna, uma linha delimitadora de hífens e zero ou mais linhas de corpo. A linha delimitadora não é decoração — no GFM é o que faz a linha anterior ser uma tabela. O conversor processa as partes em ordem:

  • Normalizar: pipes iniciais e finais são opcionais no GFM e tolerados aqui; espaços em branco ao redor de cada célula são recortados antes de qualquer outra coisa acontecer.
  • Dividir: células são divididas em pipes não escapados; um pipe com barra invertida (\|) se torna um caractere | literal dentro do valor.
  • Mapear: a linha de cabeçalho fornece as chaves do objeto em ordem de coluna, e cada linha de corpo se torna um objeto com essas chaves.
  • Coagir: cada célula recortada é inferida como um número, um booleano ou nulo; o resto permanece string — incluindo qualquer célula entre aspas duplas, que opta por fora da inferência.

Inferência de tipos, explicada claramente

Uma célula de tabela não tem um sistema de tipos, então o conversor precisa escolher um, e honestidade significa dizer onde isso pode dar errado. As regras se aplicam ao texto da célula recortado, nesta ordem:

As duas últimas linhas são as famosas. Um CEP, número de telefone ou código de produto digitado como número se torna um número, e um zero à esquerda não sobrevive à viagem. Para manter um valor literal, envolva a célula em aspas duplas no Markdown e o conversor mantém como string. A troca é deliberada: tudo string pouparia o CEP e quebraria silenciosamente todo consumidor esperando números reais.

Conteúdo da célulaValor JSON
42o número 42
-3.5o número -3.5
true / falseos booleanos true e false
nullnull
(célula vazia)null
"02134"a string "02134" — aspas optam por fora
02134o número 2134 — o zero à esquerda some

Como a saída se parece

O exemplo abaixo é o par exato que o botão “Carregar exemplo” produz: uma tabela de quatro colunas com um número, um booleano e uma célula vazia. A célula vazia de notas no segundo registro se torna um nulo explícito em vez de uma string vazia, então a distinção que o autor da tabela fez sobrevive no JSON. A saída é formatada com dois espaços para manter diffs legíveis.

Casos que este conversor recusa em vez de corromper

Dois entradas malformadas recebem um erro nomeado em vez de uma saída adivinhada, porque cada uma produziria registros que mentem:

  • Sem linha delimitadora — no GFM, uma linha de pipes sem uma linha de hífens abaixo é um parágrafo, não uma tabela. Sem delimitador não há nada para confiar como cabeçalho, então o conversor recusa e nomeia a linha onde procurou.
  • Uma linha mais larga que o cabeçalho — células extras não têm chave para ficar, e o GFM próprio ignora o excesso silenciosamente. Descartar dados silenciosamente é pior que um erro, então o conversor relata o número da linha ofensor. Linhas mais curtas são preenchidas com nulo, o que mantém cada registro com o mesmo formato.

Perguntas frequentes

Converter uma tabela Markdown para JSON envia meus dados para algum lugar?

Não. Análise e serialização acontecem dentro desta aba do navegador, em JavaScript que carregou com a página. Não há endpoint de upload no código da página, e a Content-Security-Policy do site bloqueia conexões de saída, então a página não pode ligar para casa nem por acidente. Verifique em segundos: abra o DevTools, veja o painel de Rede, converta — nenhuma requisição aparece.

Por que a linha separadora de hífens é obrigatória?

No Markdown do GitHub, a linha delimitadora (| --- | --- |) é o que transforma duas linhas de pipes em uma tabela; sem ela o texto é só um parágrafo contendo pipes. Como o cabeçalho acima fornece as chaves JSON, um separador ausente deixa nada confiável para usar como esquema, então o conversor rejeita a entrada e nomeia a linha. Dois-pontos de alinhamento como :---: são tolerados.

Como coloco um caractere pipe literal dentro de uma célula?

Escape com uma barra invertida: \| dentro de uma célula se torna um | único na string JSON. É uma regra do GFM, não preferência do conversor — um pipe não escapado seria lido como separador de coluna e deslocaria cada célula depois dele. O conversor reverso aplica o mesmo escape ao escrever tabelas, então um valor com pipe sobrou uma ida e volta intacto.

O que acontece com valores que têm zeros à esquerda, como um CEP?

Um 02134 nu se infere como o número 2134, porque números JSON não podem representar zero à esquerda. O conversor faz exceção silenciosa para CEPs, números de telefone ou códigos SKU — ele declara a regra. Para manter um valor textual, envolva a célula em aspas duplas no Markdown ("02134"); as marcas como string deliberada e são removidas do valor.

E se as linhas tiverem números diferentes de células?

Uma linha mais curta que o cabeçalho é preenchida com nulo para cada coluna faltante, então cada registro mantém o mesmo formato. Uma linha mais longa que o cabeçalho é rejeitada com o número da linha, porque as células extras não têm chave e descartá-las corromperia o registro silenciosamente. Corrija a linha, não o esquema.

Posso converter JSON de volta para uma tabela Markdown?

Sim — a direção é totalmente servida neste site. O conversor de JSON para tabela Markdown pega um array de registros, une suas chaves em um cabeçalho e emite uma tabela GFM com escape de aplicado onde necessário. Juntos, as duas páginas tornam viagens de documentação sem perda para cada formato que uma tabela pode expressar.