JSON para HTML
Ferramenta online grátis para converter JSON em HTML, transformando arrays JSON ou objetos aninhados em código de tabela HTML padrão pronto para incorporar em páginas web. Suporta nivelamento automático de objetos aninhados (user.name), classe CSS personalizada, rolagem horizontal responsiva, 6 opções de estilo visual, espaço reservado para null, proteção por limite de linhas, pré-visualização em tempo real com abas Código e iframe, destaque por tipo e histórico local.
Sugestões Relacionadas
Sobre JSON para HTML e tabelas HTML
A ferramenta JSON para HTML (JSON to HTML Converter) é uma utilidade prática que converte automaticamente estruturas de dados JSON em código padrão de tabela HTML. Ela libera os desenvolvedores do trabalho repetitivo de escrever manualmente os templates `<table>` / `<tr>` / `<td>`, sendo especialmente adequada para cenários que exigem exibir rapidamente dados aninhados de retorno de API, arquivos de configuração ou qualquer estrutura JSON como uma tabela web.
A tabela HTML (HTML Table) é o elemento padrão W3C para exibição de dados estruturados, composto por contêiner `<table>`, cabeçalho `<thead>`, corpo `<tbody>`, linhas `<tr>`, células de cabeçalho `<th>`, células de dados `<td>` e título `<caption>`. O código gerado por esta ferramenta segue rigorosamente essa estrutura semântica, facilitando a captura por SEO e a acessibilidade (leitores de tela conseguem identificar).
As ferramentas de JSON para HTML no mercado se dividem em três categorias: a primeira gera apenas strings de código HTML (como tooltt.com, codebeautify.org), com foco em 'copiar e usar'; a segunda também fornece pré-visualização visual (como esta ferramenta, jsontables.com, TableConvert), com foco em 'WYSIWYG'; a terceira suporta expansão aninhada + injeção de classes Tailwind (posicionamento diferencial desta ferramenta), ideal para engenheiros que precisam incorporar JSON em projetos frontend modernos.
O 'Nivelamento aninhado' desta ferramenta é o diferencial em relação à maioria dos concorrentes: ferramentas tradicionais, ao encontrarem `{user:{name:'Alice'}}`, exibem diretamente uma string `{"name":"Alice"}`, enquanto esta ferramenta expande recursivamente em uma coluna `user.name` (profundidade máxima de 6 níveis, separador personalizável). Isso significa que você pode processar diretamente dados de negócios reais com estruturas aninhadas complexas de APIs como GitHub, Stripe e Notion, sem precisar pré-achatar com jq / lodash.
Outro diferencial são os 'Ganchos de classe CSS personalizada': além de gerar estilo inline, a ferramenta permite injetar qualquer string de classe na tag `<table>`. Isso permite que usuários de frameworks CSS populares como Tailwind / Bootstrap / Bulma / DaisyUI reutilizem diretamente o HTML gerado e obtenham imediatamente o mesmo design do projeto, sem precisar editar CSS manualmente.
Casos de uso
- Desenvolvimento frontend: renderizar rapidamente dados JSON de retorno de API em tabelas HTML para incorporar em painéis administrativos ou páginas de documentação
- Projetos com Tailwind / Bootstrap: inserir classes do Tailwind ou Bootstrap diretamente no campo 'Classe CSS da tabela', integrando-se perfeitamente ao sistema de estilos existente
- Páginas web responsivas: com o wrapper de rolagem horizontal ativado por padrão, tabelas em dispositivos móveis não quebram o layout
- Visualização de dados: colar tabelas com estilo em plataformas que suportam incorporação HTML como blogs, documentação, Confluence, Notion
- Geração de relatórios: converter rapidamente dados JSON exportados do backend em relatórios HTML para e-mail a serem enviados para áreas de negócio
- Prototipagem frontend: usar dados reais na fase de design para pré-visualizar o estilo da tabela, facilitando o alinhamento com produto/design antes da entrega
- Sistemas CMS: criar trechos de tabela HTML estáticos para WordPress / Drupal, evitando a complexidade de templates
- Testes e depuração: colar a saída de JSON.stringify do console do navegador para pré-visualizar rapidamente a estrutura bidimensional de dados aninhados complexos
- Templates de e-mail: incorporar o HTML da tabela em e-mails HTML (atenção: testar compatibilidade com clientes como Outlook)
- Documentação de API: incorporar tabelas HTML em Markdown / Swagger / Redoc substituindo os exemplos JSON padrão
- Cenários educacionais: converter JSONs aninhados de trabalhos de alunos em tabelas unificadas para correção e apresentação em cursos de estruturas de dados
- Relatórios de limpeza de dados: converter JSONs aninhados exportados de bancos de dados em tabelas usando o modo de nivelamento, facilitando a comparação de campos
Como Usar
- Cole um array JSON (recomendado) ou um único objeto no editor à esquerda, ou clique em 'Sample' para carregar 3 exemplos de produtos, ou clique em 'Upload' para enviar um arquivo .json / .txt
- Selecione o modo de tratamento de aninhamento na barra de ferramentas (recomendado 'Nivelar'); objetos aninhados serão expandidos automaticamente em chaves com notação de ponto como `user.name`
- Clique no botão 'Convert' (ou pressione Enter) para acionar a conversão; há uma proteção de debounce de 500ms durante a digitação
- Visualize o código de tabela HTML com destaque de sintaxe na aba Código à direita, e o efeito renderizado em tempo real via iframe na aba Preview
- Marque opções de estilo na barra de ferramentas (listras / bordas / hover / compacto / responsivo), preencha a classe CSS personalizada da tabela, defina o espaço reservado para null; a pré-visualização é atualizada automaticamente em tempo real
- Após satisfeito, clique em 'Copy' para copiar o código HTML e colar em uma página web, ou clique em 'Download' para baixar como table.html; para redefinir, clique em Reset
Recursos
- Nivelamento automático de objetos aninhados: expande recursivamente `{user:{name,age}}` em chaves separadas por ponto como `user.name`, `user.age` (separador configurável), sem precisar escrever scripts de nivelamento manualmente
- Três modos de tratamento de aninhamento: Nivelar (Recomendado, expansão automática até 6 níveis) / Chaves de primeiro nível (objetos aninhados como coluna única) / Como string (objetos aninhados convertidos em string JSON para pré-visualização)
- Ganchos de classe CSS personalizada: injeta strings de classe CSS personalizada em `<table>` e opcionalmente em um `<div>` externo, integrando-se perfeitamente com Tailwind, Bootstrap, Bulma e outros sistemas de estilo
- Rolagem horizontal responsiva: envolve por padrão em um contêiner `overflow-x:auto`, com barra de rolagem horizontal automática em telas estreitas, sem distorcer o layout da página
- 6 opções de estilo visual: listras, bordas, destaque ao passar o mouse, modo compacto, índice na primeira coluna (#), legenda (Caption) da tabela, ativadas em tempo real pelas caixas de seleção da barra de ferramentas
- Pré-visualização em duas abas Código e iframe: a aba Código mostra o código-fonte HTML com destaque de sintaxe, a aba Preview renderiza o efeito real da tabela em um iframe sandbox em tempo real
- Destaque por tipo: null exibido em cinza itálico (texto do espaço reservado personalizável), booleanos verde/vermelho para true/false, números em azul, objetos aninhados com visualização do JSON completo ao passar o mouse
- Proteção por limite de linhas: limite padrão de 1000 linhas (ajustável de 1 a 10000), com truncamento automático e aviso na interface quando excedido, evitando travamentos do navegador ao renderizar DOMs muito grandes
- Feedback estatístico da geração: o painel direito mostra em tempo real 'Geradas X linhas × Y colunas' + selo de truncamento, facilitando visualizar a escala dos dados ao depurar JSONs longos
- Copiar/Baixar com um clique: no modo Código é possível copiar o código-fonte HTML para a área de transferência ou baixar como arquivo table.html pronto para uso em sites
- Dados de exemplo + upload de arquivo: 3 exemplos de produtos integrados (Laptop / Mouse / Desk Chair) com carregamento por um clique, além de suporte a arrastar e soltar ou clicar para fazer upload de arquivos .json / .txt
- Redefinição das opções com um clique: o botão Reset no canto direito da barra de ferramentas restaura todas as 14 opções configuráveis aos valores padrão, facilitando experimentar configurações rapidamente
- Histórico local: persistência via localStorage das últimas 200 entradas, permitindo recuperação rápida após atualizar a página ou fechá-la acidentalmente
- Execução 100% local no navegador: toda a análise de JSON, geração de HTML e operações de copiar/baixar são feitas no seu navegador, sem envio de dados a nenhum servidor
Exemplos de Código
JavaScript: Nivelamento aninhado + integração com classe Tailwind
javascriptO uso mais comum em desenvolvimento real: após chamar a API do GitHub, nivelar os objetos aninhados em chaves com notação de ponto e integrar ao projeto usando classes Tailwind.
// 1) Call GitHub API to fetch user list
async function fetchUsers() {
const res = await fetch('https://api.github.com/users?per_page=10');
return await res.json();
}
// 2) Flatten nested object function (equivalent to the tool's flattening logic)
function flattenObject(obj, prefix = '', sep = '.', result = {}) {
for (const [k, v] of Object.entries(obj || {})) {
const key = prefix ? `${prefix}${sep}${k}` : k;
if (v && typeof v === 'object' && !Array.isArray(v)) {
flattenObject(v, key, sep, result);
} else {
result[key] = v;
}
}
return result;
}
// 3) Convert flattened data into HTML table, inject Tailwind class
function generateHtmlTable(rows) {
const flat = rows.map(r => flattenObject(r));
const cols = [...new Set(flat.flatMap(r => Object.keys(r)))];
const thead = cols.map(c => `<th class="px-4 py-2 text-left">${c}</th>`).join('');
const tbody = flat.map(r =>
`<tr class="border-b hover:bg-gray-50">${cols.map(c => `<td class="px-4 py-2">${r[c] ?? 'N/A'}</td>`).join('')}</tr>`
).join('');
return `<table class="min-w-full text-sm">
<thead class="bg-gray-100"><tr>${thead}</tr></thead>
<tbody>${tbody}</tbody>
</table>`;
}
// 4) Inject into the page
const users = await fetchUsers();
const html = generateHtmlTable(users);
document.getElementById('table-container').innerHTML = html;
console.log('Geradas ' + users.length + ' linhas, ' + (Object.keys(flattenObject(users[0])).length) + ' colunas');Python: Conversão de JSON aninhado em tabela HTML no Flask (sem dependências de frontend)
pythonNa renderização de templates no backend, é possível usar bibliotecas nativas do Python para gerar a mesma tabela HTML, com suporte a nivelamento aninhado e injeção de classes.
from flask import Flask, jsonify, render_template_string
import json
app = Flask(__name__)
TEMPLATE = """
<!doctype html><html><body>
<div class="overflow-x-auto">{{ table_html | safe }}</div>
</body></html>
"""
def flatten(obj, prefix='', sep='.', result=None):
"""Recursively flatten nested object"""
if result is None:
result = {}
for k, v in (obj or {}).items():
key = f"{prefix}{sep}{k}" if prefix else k
if isinstance(v, dict):
flatten(v, key, sep, result)
else:
result[key] = v
return result
def json_to_html_table(data, table_class='min-w-full border-collapse',
max_rows=1000, responsive=True):
if isinstance(data, dict):
data = [data]
if not data:
return "<p>Sem dados</p>"
# Truncate rows
truncated = False
if len(data) > max_rows:
data = data[:max_rows]
truncated = True
# Flatten each row
flat_rows = [flatten(row) for row in data]
# Collect all column names (deduplicate with set, preserve insertion order)
columns = []
for row in flat_rows:
for k in row.keys():
if k not in columns:
columns.append(k)
# Generate thead
thead = "".join(f'<th class="px-4 py-2 text-left bg-gray-100">{c}</th>' for c in columns)
# Generate table rows
rows = []
for i, row in enumerate(flat_rows):
bg = "bg-gray-50" if i % 2 == 1 else ""
tds = "".join(
f'<td class="px-4 py-2 {bg}">{("N/A" if row.get(c) is None else row.get(c, ""))}</td>'
for c in columns
)
rows.append(f'<tr class="hover:bg-blue-50">{tds}</tr>')
html = f'<table class="{table_class}"><thead><tr>{thead}</tr></thead><tbody>{"".join(rows)}</tbody></table>'
if responsive:
html = f'<div class="overflow-x-auto">{html}</div>'
if truncated:
html = f'<p class="text-amber-600 text-sm">Dados truncados para as primeiras {max_rows} linhas</p>{html}'
return html
@app.route('/api/users')
def users():
data = json.load(open('users.json'))
return jsonify(data)
@app.route('/users.html')
def users_html():
import requests
data = requests.get('http://localhost:5000/api/users').json()
return render_template_string(TEMPLATE, table_html=json_to_html_table(data))
if __name__ == '__main__':
app.run(debug=True)Linha de comando: Achatamento com jq + geração de relatório HTML estático com esta ferramenta
bashCenário de operações: agregar logs JSON aninhados com jq e colar nesta ferramenta para gerar um relatório HTML com classes Tailwind.
# 1) Use jq to aggregate and flatten nested logs into dot-notation keys
cat app.log | jq -s '
group_by(.response.status_code) |
map({
status: .[0].response.status_code,
count: length,
"first_request.method": .[0].request.method,
"last_request.url": .[-1].request.url,
"first_seen": min_by(.timestamp).timestamp,
"last_seen": max_by(.timestamp).timestamp
})
' > stats.json
# 2) Paste stats.json into this tool
# Select the "Nivelar (Recomendado)" mode in the toolbar
# Check "Listras + Wrapper responsivo + Bordas"
# In the table class field enter: min-w-full text-sm border-collapse
# Set null placeholder: - (missing fields display as -)
# Set Caption: Estatísticas de log de erros de produção 2026-07
# Click Convert and download table.html
# 3) Upload to S3 / OSS static site
aws s3 cp table.html s3://my-bucket/reports/2026-07.html --acl public-read
# Or embed into Confluence / Notion / VuePress docs
sed -i '' 's/min-w-full/min-w-full shadow-md/g' table.html
# Or send as HTML email
mutt -e "set content_type=text/html" -s "Log de erros 2026-07" your@email.com < table.htmlPerguntas frequentes
Como converter dados JSON em tabela HTML?
Cole um array JSON (onde cada elemento é um objeto) na caixa de entrada à esquerda, clique no botão 'Convert' da barra de ferramentas. A aba Código à direita mostrará o código de tabela HTML com destaque de sintaxe, e ao alternar para a aba Preview você verá a renderização em tempo real via iframe. Clique em 'Copy' para colar em qualquer página HTML.
Objetos JSON aninhados podem ser convertidos em tabela HTML?
Sim. A ferramenta possui um modo de nivelamento aninhado integrado que expande recursivamente `{user:{name:'Alice',age:30}}` em duas colunas `user.name` e `user.age`, com profundidade máxima de 6 níveis. Também é possível alternar na barra de ferramentas para o modo 'Chaves de primeiro nível' (mantém o objeto aninhado como uma única coluna de string JSON) ou o modo 'Como string' (trata o objeto aninhado totalmente como string).
É possível alterar o separador das chaves após o nivelamento?
Por padrão é usado `.` como separador (`user.name`), seguindo as convenções mais comuns como JavaScript, MongoDB e Lodash. Caso prefira `user_name` ou `user/name`, é possível personalizar no campo 'Separador' da barra de ferramentas (visível para usuários avançados).
É possível personalizar o estilo da tabela HTML gerada?
A ferramenta oferece três formas de personalização de estilo: ① 6 opções visuais na barra de ferramentas (listras / bordas / hover / compacto / índice / Caption) aplicadas em tempo real; ② preencher o campo 'Classe CSS da tabela' com classes personalizadas (como `min-w-full border-collapse` do Tailwind), que são injetadas em `<table class="...">`; ③ modificar o HTML gerado diretamente antes de usá-lo.
Suporta Tailwind / Bootstrap?
Sim. Preencha o campo 'Classe CSS da tabela' com classes do Tailwind (como `min-w-full border-collapse text-sm`) ou do Bootstrap (como `table table-striped table-hover table-bordered`) e a ferramenta injetará essas classes na tag `<table>`. Atenção: o estilo inline da ferramenta tem a maior prioridade e sobrescreve parcialmente os estilos do Tailwind (cor de fundo, padding); recomenda-se desativar as opções correspondentes da barra de ferramentas (como listras) antes de usar o Tailwind.
Qual a diferença entre a aba Código e a aba Preview?
A aba Código exibe o código-fonte HTML com destaque de sintaxe, ideal para copiar e editar; a aba Preview renderiza o efeito real da tabela em um iframe sandbox, no estilo WYSIWYG. O conteúdo é idêntico em ambas, mudando apenas a forma de exibição, facilitando a alternância rápida entre 'ver código' e 'ver resultado'.
O HTML gerado é responsivo em dispositivos móveis?
Sim. A ferramenta ativa por padrão a opção 'Wrapper responsivo', envolvendo a `<table>` em um contêiner `<div style="overflow-x:auto;max-width:100%;">`. Quando a largura da tela for menor que a largura da tabela, o contêiner exibirá automaticamente uma barra de rolagem horizontal, evitando que a tabela quebre o layout da página. Esta opção pode ser desativada na barra de ferramentas.
Como são exibidos null, booleanos e números nas células?
A ferramenta aplica destaque por tipo: null é exibido em cinza itálico (o texto do espaço reservado pode ser personalizado na barra de ferramentas como `N/A` / `-` / `vazio`, etc.); o booleano true é exibido em verde, false em vermelho; números em azul; strings comuns são exibidas como estão; objetos aninhados, no modo de nivelamento, são acessados pelo caminho; nos demais modos são convertidos em string JSON e truncados em 50 caracteres.
O código HTML gerado pode ser usado diretamente em um site?
Sim. É gerada uma estrutura padrão de tabela W3C HTML5 (`<table>` / `<thead>` / `<tbody>` / `<caption>`), com CSS via estilo inline, pronto para ser colado em qualquer página HTML de forma independente, sem dependência de CSS ou JS externos. Também é possível baixar como arquivo table.html.
Qual a diferença entre JSON para HTML e JSON para CSV?
Tabela HTML é um formato visual com estilo, ideal para incorporar diretamente em páginas web; CSV é um formato de dados em texto puro, ideal para importar em Excel / Pandas / bancos de dados para análise. Ambos são gerados a partir do mesmo JSON. Recomendamos usar esta ferramenta para pré-visualizar o layout na web e depois exportar a versão de dados com a ferramenta JSON para CSV.
Como alterar o texto do cabeçalho?
A ferramenta usa automaticamente as chaves do primeiro nível do objeto JSON como conteúdo do `<th>` (no modo de nivelamento, o caminho completo separado por ponto, como `user.name`). Se quiser que o cabeçalho exiba outro texto (como em português), há três formas: ① alterar os nomes das chaves no JSON de origem; ② após gerar, editar manualmente o conteúdo de `<th>...</th>` na aba Código à direita; ③ usar sed para substituição em lote no HTML gerado.
O table.html baixado aparece em branco no navegador, o que fazer?
O table.html baixado contém apenas a estrutura da tag `<table>` (podendo incluir um `<div>` externo responsivo), sem a estrutura completa do HTML (`<html>` / `<head>` / `<body>`), pois foi projetado como trecho de código para fácil incorporação em páginas web existentes. Você pode adicionar manualmente a estrutura completa usando uma ferramenta de formatação HTML, ou colar diretamente no local correspondente do seu projeto.
A página fica lenta ao gerar tabelas com mais de 1000 linhas, o que fazer?
A ferramenta define por padrão um limite de proteção de 1000 linhas, exibindo 'Truncado' quando excedido. Caso realmente precise gerar tabelas com 5000 linhas, ajuste o campo 'Máximo de linhas' da barra de ferramentas para 10000, mas recomendamos: ① dividir em tabelas paginadas (50 linhas por página); ② usar IntersectionObserver para implementar rolagem virtual; ③ ou usar bibliotecas de componentes especializadas como TanStack Table / AG Grid para cenários de exibição de dados.
Os dados são enviados para o servidor? E a privacidade?
Execução 100% local no navegador. Toda a análise de JSON, geração de HTML e operações de copiar/baixar são feitas em JavaScript no seu navegador; a leitura de arquivos também é processada apenas localmente pelo FileReader, sem envio a nenhum servidor. JSONs com respostas de API sensíveis ou campos de negócio não públicos podem ser usados com tranquilidade — ao fechar a página, todos os dados são apagados.
Solução de Problemas
Mensagem 'Insira dados JSON' ou erro semelhante
A caixa de entrada à esquerda está vazia ou contém apenas espaços em branco. Certifique-se de colar conteúdo JSON válido, ou clique em 'Sample' para carregar dados de exemplo, ou clique em 'Upload' para selecionar um arquivo .json / .txt.
Mensagem 'Unexpected token ... in JSON at position N'
O formato JSON é inválido. Causas comuns: ① vírgula extra no final (como [{},{},]); ② uso de aspas simples em vez de duplas; ③ sintaxe de objeto JS (como {key: value}) em vez de JSON ({"key": "value"}). Use uma ferramenta de formatação JSON para validar e corrigir antes.
Tabela gerada tem apenas cabeçalho, sem linhas de dados
Os dados JSON são um array vazio [] ou um objeto vazio {}. Para arrays vazios, a ferramenta retorna o comentário '<!-- No valid objects found -->'. Adicione pelo menos um objeto no JSON de origem.
Nomes de colunas muito longos no modo Nivelar (como user.profile.address.city.country.code)
Quando a profundidade do aninhamento é muito grande, recomendamos: ① mudar para o modo 'Chaves de primeiro nível' (pega apenas os campos de topo; objetos aninhados viram uma coluna JSON completa); ② modificar a estrutura do JSON de origem, reduzindo aninhamentos desnecessários; ③ usar o botão Reset da barra de ferramentas para restaurar a configuração padrão de nivelamento.
Estilos do Tailwind não funcionam após a injeção da classe
Por padrão, a ferramenta gera estilo inline (como padding, background), que sobrescreve as classes utilitárias de mesmo nome do Tailwind. Recomendamos: ① desativar as opções correspondentes da barra de ferramentas (como listras) antes de usar o Tailwind para controlar a cor de fundo; ② ou usar PostCSS para remover o atributo style inline do HTML gerado.
Altura da tabela comprimida após o wrapper responsivo
O 'Wrapper responsivo' faz com que a altura do div externo siga a tabela por padrão. Se o contêiner pai for um layout flex sem altura definida, a tabela filha pode ser comprimida. Adicione min-h-0 ao contêiner pai ou defina a altura da tabela.
O table.html baixado aparece em branco no navegador
O arquivo baixado contém apenas o trecho `<table>` (podendo incluir um `<div>` externo responsivo), sem a estrutura completa do HTML (`<!doctype html>` / `<html>` / `<head>` / `<body>`). Isso foi projetado para facilitar a incorporação em páginas web existentes. Use uma ferramenta de formatação HTML para adicionar a estrutura completa, ou cole diretamente no local correspondente do seu projeto.
Caracteres estranhos nos cabeçalhos em português
As chaves do JSON de origem contêm caracteres acentuados, garantindo que o arquivo de origem esteja em UTF-8. Se o JSON foi copiado do Excel, pode ter sido convertido para outro encoding; use uma ferramenta de conversão de encoding para UTF-8 antes de colar.
Quero modificar a tabela gerada em lote (como substituir o logo da empresa / mudar cores)
Após gerar, copie o HTML na aba Código à direita e use sed / PostCSS / scripts próprios para substituição em lote dos atributos de estilo. Comando comum: sed -i '' 's/#f9fafb/#sua-cor/g' table.html.
Página fica lenta ao gerar tabelas com mais de 1000 linhas
A ferramenta define por padrão um limite de proteção de 1000 linhas. É possível ajustar maxRows para 10000 na barra de ferramentas, mas o desempenho do navegador cai visivelmente ao renderizar DOMs muito grandes (>1000 nós). Recomendamos: ① dividir em tabelas paginadas (50 linhas por página); ② usar IntersectionObserver para implementar rolagem virtual; ③ ou usar bibliotecas de componentes especializadas como TanStack Table / AG Grid em cenários de exibição de dados.
Histórico perdido
O histórico é armazenado no localStorage do navegador. Limpar os dados do navegador, alternar para o modo anônimo ou usar outro navegador fará o histórico desaparecer. A ferramenta não envia histórico para nenhum servidor, portanto não há sincronização entre dispositivos.
Não consigo ver os dados originais após o limite de linhas
A ferramenta usa maxRows=1000 por padrão, truncando ao exceder. Se seus dados de origem têm mais de 1000 linhas, mas você só precisa das primeiras N para pré-visualização, reduzir maxRows (por exemplo, 100) pode retornar o resultado mais rapidamente. Se precisar dos dados completos, recomendamos processar diretamente com scripts como Python Faker / Node.js.
Glossário
- Tabela HTML (HTML Table)
- Elemento padrão W3C para exibição de dados estruturados, composto por tags semânticas como table / thead / tbody / tr / th / td / caption. O código gerado por esta ferramenta segue rigorosamente essa estrutura.
- Array JSON
- Conjunto de objetos envolto por colchetes [...]. A ferramenta trata cada objeto do array como uma linha da tabela; arrays vazios não geram tabela (exibe um aviso).
- Objeto JSON
- Conjunto de pares chave-valor envolto por chaves {}. A ferramenta trata cada chave do objeto como cabeçalho e o valor como célula; um único objeto é automaticamente empacotado como uma tabela de uma única linha.
- Nivelamento aninhado (Flatten)
- Expandir recursivamente objetos aninhados em chaves planas separadas por ponto, por exemplo {user:{name:'A'}} → 'user.name'. A ferramenta suporta nivelamento automático até 6 níveis de profundidade, com separador configurável.
- thead / tbody
- Duas seções semânticas da tabela HTML: thead envolve as linhas de cabeçalho (th) e tbody envolve as linhas de dados (td). O código gerado por esta ferramenta distingue rigorosamente essas duas partes.
- Caption
- Tag de título da tabela, localizada na primeira linha interna da table. A ferramenta suporta texto personalizado para Caption, que ao ser ativado exibe o título especificado acima da tabela, sendo útil para SEO e acessibilidade.
- Listras (Zebra Striping)
- Padrão visual em que linhas ímpares e pares da tabela usam cores de fundo alternadas, comumente combinando #fff / #f9fafb. A ferramenta ativa esse padrão pela caixa de seleção 'Listras', melhorando significativamente a legibilidade de tabelas longas.
- Estilo inline (Inline Style)
- Escrever CSS diretamente no atributo style de uma tag HTML, em vez de referenciar uma folha de estilo externa. Por padrão, todos os estilos da ferramenta são gerados via style inline, prontos para uso sem a necessidade de arquivos CSS adicionais.
- Gancho de classe CSS
- Capacidade diferencial desta ferramenta: injetar qualquer string de classe na tag `<table>` (como classes do Tailwind), integrando-se perfeitamente com frameworks CSS existentes. Esta é a melhoria-chave em relação aos concorrentes.
- iframe sandbox
- Modo sandbox seguro da tag iframe do HTML, que pode limitar a execução de scripts e o envio de formulários. A ferramenta usa um iframe com sandbox="allow-same-origin" para pré-visualizar o HTML gerado, evitando a execução acidental de scripts.
- Destaque por tipo (type-aware)
- Capacidade diferencial desta ferramenta: aplica cores diferentes conforme o tipo JS do valor da célula (null / boolean / number / object / string), tornando a depuração de dados de API mais intuitiva.
- Histórico localStorage
- Armazenamento local de chave-valor fornecido pelo navegador (capacidade aproximada de 5-10MB). A ferramenta usa localStorage para persistir as últimas 200 entradas, permitindo recuperação rápida após atualizar a página ou fechá-la acidentalmente.
- Wrapper responsivo (Responsive Wrapper)
- Adiciona <div style="overflow-x:auto;max-width:100%;"> ao redor da tabela, fazendo com que ela exiba uma barra de rolagem horizontal automática em telas estreitas. A ferramenta ativa por padrão, podendo ser desativado na barra de ferramentas.
- Debounce
- Técnica de otimização de performance frontend: combinar várias chamadas de eventos de alta frequência (como digitação) em uma única execução após o último disparo. A ferramenta define um debounce de 500ms para evitar travamentos na análise de arquivos grandes.
- W3C HTML5
- Especificação padrão HTML definida pelo World Wide Web Consortium (W3C). O código gerado por esta ferramenta está em conformidade com a especificação HTML5 e é renderizado corretamente em todos os navegadores modernos.
Tabela comparativa dos três modos de tratamento de objetos aninhados
A barra de ferramentas oferece três modos para diferentes cenários de aninhamento. Recomendamos escolher conforme a complexidade da estrutura do JSON:
| Modo | Comportamento | Exemplo | Cenário |
|---|---|---|---|
Nivelar (Recomendado) | Expande recursivamente objetos aninhados em chaves separadas por ponto (profundidade ≤ 6) | user.name / user.tags.0 | Estruturas aninhadas de APIs reais como GitHub / Stripe / Notion; quando se deseja que cada campo seja uma coluna separada |
Chaves de primeiro nível | Pega apenas as chaves do primeiro nível; objetos/arrays aninhados viram uma única coluna de string JSON | user / tags | Estruturas aninhadas instáveis ou muito profundas (>6 níveis); quando se deseja apenas uma visão geral dos campos de topo |
Como string | Todos os valores são tratados forçadamente como string; objetos aninhados passam diretamente por JSON.stringify | user (como trecho JSON completo) | Cenários de depuração: quando se deseja preservar a estrutura JSON original para inspeção visual |
Tabela de consulta rápida das 14 opções configuráveis da barra de ferramentas
Todas as 14 opções configuráveis da barra de ferramentas e suas diferenças visuais, para selecionar combinações rapidamente:
| Opção | Tipo | Efeito visual / comportamento |
|---|---|---|
includeIndex | checkbox | Adiciona coluna de numeração # à esquerda da tabela (incrementando a partir de 1) |
striped | checkbox | Cores de fundo alternadas em linhas ímpares e pares (branco / #f9fafb) |
bordered | checkbox | Borda cinza de 1px ao redor das células + linha de destaque de 2px na base do cabeçalho |
hover | checkbox | Linha inteira fica com fundo cinza claro #f9fafb ao passar o mouse |
compact | checkbox | Reduz o padding das células de 10px×14px para 6px×8px |
responsive | checkbox | Wrapper externo com contêiner overflow-x:auto; rolagem horizontal em telas estreitas |
flattenMode | select | Tratamento de aninhamento: Nivelar (Recomendado) / Chaves de primeiro nível / Como string |
tableClass | text | Classe CSS personalizada injetada em <table class="..."> |
nullPlaceholder | text | Texto exibido nas células null / undefined (vazio exibe 'null') |
maxRows | number | Número máximo de linhas geradas (1-10000), com truncamento automático e aviso ao exceder |
caption | text | Texto do título personalizado exibido acima da tabela (caption-side: top) |
indexHeader | text | Texto do cabeçalho da coluna de índice (padrão #) |
flattenSeparator | text | Separador de chaves no modo de nivelamento (padrão ., pode ser alterado para _ / - etc.) |
wrapperClass | text | Classe CSS personalizada do <div> externo responsivo (usuários avançados) |
Tabela de consulta rápida das regras de destaque por tipo de célula
A ferramenta aplica automaticamente cores diferentes conforme o tipo JavaScript do valor JSON, facilitando a identificação rápida do tipo de dado:
| Tipo JS | Detecção | Estilo aplicado | Exemplo de saída |
|---|---|---|---|
null / undefined | val === null || val === undefined | color: #9ca3af; font-style: italic; exibe o texto do espaço reservado (personalizável) | <span style="color:#9ca3af;font-style:italic;">N/A</span> |
boolean (true) | typeof val === 'boolean' && val | color: #059669; | <span style="color:#059669;">true</span> |
boolean (false) | typeof val === 'boolean' && !val | color: #dc2626; | <span style="color:#dc2626;">false</span> |
number | typeof val === 'number' | color: #2563eb; | <span style="color:#2563eb;">42</span> |
object / array (modo nivelar) | type === 'object' + modo nivelar acessa pelo caminho | Objetos aninhados são acessados pelo caminho, retornando valores atômicos | user.name → 'Alice' |
object / array (outros modos) | typeof val === 'object' | JSON.stringify com escape, truncado em 50 caracteres; roxo itálico + title com JSON completo no hover | <span style="color:#7c3aed;font-style:italic;" title="...">{"id":1…</span> |
string | outros casos | Cor de texto padrão #4b5563 | Jennifer Martinez |
Privacy & Security
Nesta ferramenta de JSON para HTML, todas as operações de análise de JSON, nivelamento aninhado, geração de HTML, copiar e baixar são realizadas inteiramente em JavaScript no seu navegador local. Os dados JSON inseridos e o código HTML gerado não são enviados a nenhum servidor, nem registrados, cacheados ou armazenados na nuvem. JSONs sensíveis com respostas de API não públicas ou campos internos do negócio podem ser usados com tranquilidade; ao fechar a página, todos os dados são apagados.
Authoritative References
- Comprimir JSON
- CSV para JSON
- JSON para CSV
- JSON Diff
- JSON Escape / Unescape
- Achatamento de JSON
- Formatador JSON
- Gerador de JSON
- Consulta JSONPath
- Mesclar JSON
- Reparar JSON
- Validador JSON Schema
- Ordenar JSON
- JSON Stringify
- JSON para HTML
- JSON para Java
- JSON to Markdown
- JSON para SQL
- JSON para TOML
- JSON para TypeScript
- XML para JSON
- JSON para XML
- YAML para JSON
- JSON para YAML
- JSON para Python
- JSON para Go
- JSON para Rust
- JSON para Swift
- JSON para C#
- JSON para C++
- JSON para PHP