JSON a HTML

Opciones:|

Herramienta gratuita en línea para convertir JSON a HTML, transforma arrays JSON u objetos anidados en código de tabla HTML estándar listo para incrustar en tu página web. Compatible con aplanado de objetos anidados (user.name), clase CSS personalizada, desplazamiento horizontal responsivo, 6 estilos visuales, marcador de posición para null, protección por límite de filas, vista previa en vivo con doble pestaña (Código + iframe) y resaltado por tipo con historial local.

Relacionado

Sobre JSON a HTML y tablas HTML

Una herramienta de JSON a HTML (JSON to HTML Converter) es una utilidad práctica que convierte estructuras de datos JSON en código de tabla HTML estándar de forma automática. Libera a los desarrolladores del trabajo repetitivo de escribir manualmente plantillas `<table>` / `<tr>` / `<td>`, siendo especialmente útil cuando necesitas mostrar rápidamente como tabla web datos anidados de APIs, archivos de configuración o cualquier estructura JSON.

La tabla HTML (HTML Table) es el elemento estándar del W3C para presentar datos estructurados, compuesto por un contenedor `<table>`, `<thead>` para la cabecera, `<tbody>` para el cuerpo, `<tr>` para filas, `<th>` para celdas de cabecera, `<td>` para celdas de datos y `<caption>` para el título. El código generado por esta herramienta sigue estrictamente esta estructura semántica, facilitando el posterior rastreo SEO y la accesibilidad (los lectores de pantalla pueden reconocerla).

Las herramientas de JSON a HTML del mercado se dividen en tres tipos: el primer tipo solo genera la cadena de código HTML (por ejemplo, tooltt.com, codebeautify.org) y se centra en "copiar y usar"; el segundo tipo ofrece también vista previa visual (como esta herramienta, jsontables.com, TableConvert) con enfoque en WYSIWYG; el tercer tipo admite expansión anidada e inyección de clases Tailwind (el posicionamiento diferencial de esta herramienta), ideal para ingenieros que necesitan incrustar JSON en proyectos frontend modernos.

El "aplanado anidado" de esta herramienta es el diferenciador frente a la mayoría de competidores: las herramientas tradicionales, al encontrar `{user:{name:'Alice'}}`, lo muestran directamente como la cadena `{"name":"Alice"}`, mientras que esta herramienta lo expande recursivamente en la columna `user.name` (hasta 6 niveles de profundidad, separador configurable). Esto significa que puedes procesar directamente estructuras anidadas complejas de APIs reales como GitHub API, Stripe API o Notion API, sin necesidad de aplanar previamente con jq o lodash.

Otro diferenciador es el "gancho de clase CSS personalizada": la herramienta no solo genera estilos en línea, sino que también permite inyectar cualquier cadena de clase en la etiqueta `<table>`. Esto permite a los usuarios de frameworks CSS populares como Tailwind, Bootstrap, Bulma o DaisyUI reutilizar directamente el HTML generado por esta herramienta y obtener de inmediato un diseño coherente con el proyecto, sin modificar CSS manualmente.

Casos de uso

  • Desarrollo frontend: renderiza rápidamente datos JSON de la API como tablas HTML para incrustar en paneles de administración o páginas de documentación
  • Proyectos con Tailwind o Bootstrap: escribe directamente las clases de Tailwind o Bootstrap en el campo "table class" para una integración perfecta con tu sistema de estilos
  • Páginas web responsivas: con el envoltorio de desplazamiento horizontal activado por defecto, las tablas en móvil no rompen el diseño
  • Visualización de datos en blogs, documentos, Confluence, Notion y otras plataformas que admitan incrustar HTML
  • Generación de informes: convierte rápidamente datos JSON exportados del backend en informes HTML para email destinados a áreas de negocio
  • Prototipado frontend: previsualiza el estilo de la tabla con datos reales en la fase de diseño, para alinearte con producto y diseño antes de la entrega
  • Sistemas CMS: crea fragmentos de tablas HTML estáticas para WordPress, Drupal y otros CMS, evitando la complejidad de los motores de plantillas
  • Pruebas y depuración: pega en la herramienta la salida de JSON.stringify desde la consola del navegador para previsualizar rápidamente la estructura bidimensional de datos anidados complejos
  • Plantillas de email: incrusta tablas HTML en emails HTML (ten en cuenta la compatibilidad con clientes como Outlook)
  • Documentación de API: incrusta tablas HTML en Markdown, Swagger o Redoc para reemplazar los ejemplos JSON predeterminados
  • Entornos educativos: convierte las entregas de tareas en JSON anidado de los estudiantes a tablas para corregir y mostrar de forma uniforme en cursos de estructuras de datos
  • Informes de limpieza de datos: convierte JSON anidados exportados de la base de datos en tablas mediante el modo aplanado para comparar campos fácilmente

Cómo Usar

  1. Pega un array JSON (recomendado) o un objeto único en el editor izquierdo, o haz clic en "Sample" para cargar 3 ejemplos de productos, o haz clic en "Upload" para subir un archivo .json o .txt
  2. Selecciona en la barra de herramientas el modo de manejo de anidamiento (recomendado "Aplanar"): los objetos anidados se expandirán automáticamente en claves con notación de puntos como `user.name`
  3. Haz clic en el botón "Convert" (o simplemente pulsa Enter) para iniciar la conversión; hay una protección de debounce de 500 ms al escribir
  4. En la pestaña Code de la derecha consulta el código HTML de la tabla con resaltado de sintaxis, y en la pestaña Preview visualiza el renderizado en vivo del iframe
  5. Marca en la barra de herramientas las opciones de estilo (rayas cebra, bordes, hover, compacto, responsivo), rellena la clase table personalizada y define el marcador para null; la vista previa se actualiza al instante
  6. Cuando estés conforme, haz clic en "Copy" para copiar el código HTML y pegarlo en tu página web, o en "Download" para descargarlo como table.html; para reiniciar pulsa Reset

Características

  • Aplanado automático de objetos anidados: expande recursivamente `{user:{name,age}}` en claves separadas por puntos como `user.name`, `user.age` (separador configurable) sin necesidad de escribir scripts de aplanado
  • Tres modos de manejo de anidamiento: Aplanar (Recomendado, expansión automática hasta 6 niveles) / Claves de primer nivel (objetos anidados como una sola columna) / Como cadena (objetos anidados convertidos a vista previa de cadena JSON)
  • Ganchos de clase CSS personalizados: inyecta cadenas de clase CSS en `<table>` y opcionalmente en el `<div>` exterior, integrándose perfectamente con sistemas de estilos como Tailwind, Bootstrap o Bulma
  • Desplazamiento horizontal responsivo: contenedor exterior por defecto con `overflow-x:auto`, que muestra automáticamente una barra de desplazamiento horizontal en pantallas estrechas sin romper el diseño de la página
  • 6 opciones de estilo visual: rayas cebra, bordes, resaltado al pasar el ratón, modo compacto, índice en la primera columna (#), título Caption de tabla, todos aplicables al instante mediante casillas de verificación en la barra de herramientas
  • Vista previa en doble pestaña Código e iframe: la pestaña Code muestra el código fuente HTML con resaltado de sintaxis, la pestaña Preview renderiza la tabla real en un iframe sandbox en tiempo real
  • Resaltado por tipo: null se muestra en gris cursiva (texto de marcador personalizable), booleanos en verde/rojo según true/false, números en azul, y los objetos anidados muestran el JSON completo al pasar el ratón
  • Protección por límite de filas: límite predeterminado de 1000 filas (ajustable de 1 a 10000), con truncamiento automático y aviso de truncamiento en la interfaz para evitar cuelgues del navegador al renderizar DOM muy grandes
  • Estadísticas de generación en tiempo real: el panel derecho muestra "X filas × Y columnas generadas" + insignia de truncamiento, para visualizar de un vistazo la escala de los datos al depurar JSON extensos
  • Copiar y descargar con un clic: en modo Code puedes copiar el código HTML al portapapeles con un clic, o descargarlo como archivo table.html listo para tu sitio web
  • Datos de ejemplo y carga de archivos: 3 ejemplos de productos integrados (Laptop / Mouse / Desk Chair) con carga con un clic, además de soporte para arrastrar o subir archivos .json / .txt
  • Restablecimiento de opciones con un clic: el botón Reset a la derecha de la barra de herramientas restaura las 14 opciones configurables a sus valores predeterminados para iterar rápido
  • Historial local: almacenamiento persistente en localStorage de las últimas 200 entradas, recuperables tras refrescar o cerrar accidentalmente la página
  • Ejecución 100% local en el navegador: todo el procesamiento de JSON, generación de HTML y operaciones de copia/descarga se realizan en tu navegador, sin subir datos a ningún servidor

Ejemplos de Código

JavaScript: aplanado anidado + integración con clases de Tailwind

javascript

El caso más común en el desarrollo real: tras llamar a la API de GitHub, aplanar los objetos anidados en claves con notación de puntos e integrarlos en el proyecto con clases de Tailwind.

// 1) Llama a la API de GitHub para obtener la lista de usuarios
async function fetchUsers() {
  const res = await fetch('https://api.github.com/users?per_page=10');
  return await res.json();
}

// 2) Función de aplanado anidado (equivalente a la lógica de aplanado de la herramienta)
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) Convierte los datos aplanados a tabla HTML, inyectando clases de Tailwind
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) Inyecta en la página
const users = await fetchUsers();
const html = generateHtmlTable(users);
document.getElementById('table-container').innerHTML = html;
console.log('Generadas ' + users.length + ' filas, columnas ' + (Object.keys(flattenObject(users[0])).length));

Python: conversión de JSON anidado a tabla HTML en Flask (sin dependencias frontend)

python

Al renderizar plantillas en el backend, puedes generar la misma tabla HTML directamente con bibliotecas estándar de Python, con soporte para aplanado anidado e inyección de clases.

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):
    """Aplana recursivamente objetos anidados"""
    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>Sin datos</p>"

    # Truncar por número de filas
    truncated = False
    if len(data) > max_rows:
        data = data[:max_rows]
        truncated = True

    # Aplanar cada fila
    flat_rows = [flatten(row) for row in data]

    # Recopilar todas las columnas (set para deduplicar, conservando el orden)
    columns = []
    for row in flat_rows:
        for k in row.keys():
            if k not in columns:
                columns.append(k)

    # Generar cabecera
    thead = "".join(f'<th class="px-4 py-2 text-left bg-gray-100">{c}</th>' for c in columns)

    # Generar filas de la tabla
    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">Datos truncados a las primeras {max_rows} filas</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)

Línea de comandos: aplanado con jq + generación de informe HTML estático con esta herramienta

bash

Escenario de operaciones: tras agregar estadísticas de logs JSON anidados, aplana con jq y pega en esta herramienta para generar un informe HTML con clases de Tailwind.

# 1) Usa jq para agrupar los logs anidados y aplanarlos a claves con notación de puntos
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) Pega stats.json en esta herramienta
#    Selecciona en la barra de herramientas el modo "Aplanar (Recomendado)"
#    Marca "Rayas cebra + Envoltorio responsivo + Bordes"
#    En el campo table class escribe: min-w-full text-sm border-collapse
#    Marcador para null: - (los campos faltantes se muestran como -)
#    Caption: Estadísticas de logs de producción 2026-07
#    Haz clic en Convert y descarga table.html

# 3) Súbelo a un sitio estático en S3 / OSS
aws s3 cp table.html s3://my-bucket/reports/2026-07.html --acl public-read

# O incrústalo en documentación de Confluence / Notion / VuePress
sed -i '' 's/min-w-full/min-w-full shadow-md/g' table.html

# O envía un email HTML
mutt -e "set content_type=text/html" -s "Logs de errores 2026-07" tu@email.com < table.html

Preguntas Frecuentes

¿Cómo convierto datos JSON en una tabla HTML?

Pega un array JSON (cada elemento es un objeto) en el campo de entrada izquierdo, haz clic en el botón "Convert" de la barra de herramientas, y en la pestaña Code de la derecha verás el código de tabla HTML con resaltado de sintaxis. Cambia a la pestaña Preview para ver la tabla renderizada en vivo en un iframe, y luego haz clic en "Copy" para pegar el código en cualquier página HTML.

¿Se pueden convertir objetos JSON anidados en una tabla HTML?

Sí. La herramienta incorpora un modo de aplanado anidado que expande recursivamente `{user:{name:'Alice',age:30}}` en dos columnas `user.name` y `user.age`, con una profundidad máxima de 6 niveles. También puedes cambiar en la barra de herramientas al modo "Claves de primer nivel" (mantiene el objeto anidado como una sola columna de cadena JSON) o al modo "Como cadena" (lo trata completamente como texto).

¿Se puede cambiar el separador de claves aplanadas?

Por defecto se usa `.` como separador (`user.name`), siguiendo las convenciones de JavaScript, MongoDB y Lodash. Si prefieres `user_name` o `user/name`, puedes personalizarlo en el campo "Separador" de la barra de herramientas (visible para usuarios avanzados).

¿Se puede personalizar el estilo de la tabla HTML generada?

La herramienta ofrece tres formas de personalizar el estilo: ① 6 interruptores visuales en la barra de herramientas (rayas cebra, bordes, hover, compacto, índice, Caption) aplicables al instante; ② rellena el campo "table class" con una clase personalizada (por ejemplo, las clases de Tailwind `min-w-full border-collapse`) que se inyectará en `<table class="...">`; ③ modifica directamente el HTML generado antes de usarlo.

¿Es compatible con Tailwind y Bootstrap?

Sí. Escribe clases de Tailwind (por ejemplo `min-w-full border-collapse text-sm`) o clases de Bootstrap (por ejemplo `table table-striped table-hover table-bordered`) en el campo "table class"; la herramienta las inyectará en la etiqueta `<table>`. Ten en cuenta: los estilos en línea de la herramienta tienen la mayor prioridad y sobrescriben parte de los estilos de Tailwind (color de fondo, padding). Se recomienda desactivar las opciones equivalentes de la barra de herramientas (por ejemplo, rayas cebra) antes de usar Tailwind.

¿Qué diferencia hay entre la pestaña Code y la pestaña Preview?

La pestaña Code muestra el código fuente HTML con resaltado de sintaxis, ideal para copiar y editar; la pestaña Preview renderiza la tabla real en un iframe sandbox con WYSIWYG. El contenido de ambas es idéntico, solo cambia la forma de presentación, lo que te permite alternar rápidamente entre "ver código" y "ver resultado".

¿El HTML generado es responsivo en dispositivos móviles?

Sí. La herramienta activa por defecto la opción "Envoltorio responsivo", que envuelve la `<table>` en un `<div style="overflow-x:auto;max-width:100%;">`. Cuando el ancho de pantalla sea menor que el de la tabla, el contenedor mostrará automáticamente una barra de desplazamiento horizontal para evitar que la tabla rompa el diseño. Puedes desactivar esta opción en la barra de herramientas.

¿Cómo se muestran null, booleanos y números en las celdas?

La herramienta aplica resaltado por tipo: null se muestra en gris cursiva (el texto del marcador se puede personalizar a `N/A`, `-`, `Vacío`, etc.); los booleanos true en verde, false en rojo; los números en azul; las cadenas se muestran tal cual; los objetos anidados en modo aplanado se acceden por ruta, y en otros modos se convierten a cadena JSON truncada a 50 caracteres.

¿Se puede usar el HTML generado directamente en un sitio web?

Sí. Se genera una estructura de tabla HTML5 estándar W3C (`<table>` / `<thead>` / `<tbody>` / `<caption>`) con CSS en línea, que se puede pegar directamente en cualquier página HTML sin depender de CSS o JS externos. También puedes descargarlo como archivo table.html.

¿Qué diferencia hay entre JSON a HTML y JSON a CSV?

La tabla HTML es un formato visual con estilo, ideal para incrustar en páginas web; CSV es un formato de datos en texto plano, perfecto para importar a Excel, Pandas o bases de datos para análisis. Ambos se generan a partir del mismo JSON; se recomienda usar primero esta herramienta para previsualizar el formato en la web y luego exportar la versión de datos con la herramienta JSON a CSV.

¿Cómo se modifica el texto de las cabeceras?

La herramienta usa automáticamente las claves de primer nivel del objeto JSON como contenido de las cabeceras `<th>` (en modo aplanado usa la ruta completa separada por puntos, por ejemplo `user.name`). Si quieres que la cabecera muestre otro texto (por ejemplo en español), tienes tres opciones: ① modificar directamente las claves del JSON original; ② editar manualmente el contenido de `<th>...</th>` en la pestaña Code tras generar; ③ usar sed para reemplazar en lote el HTML generado.

El table.html descargado se ve en blanco al abrirlo en el navegador, ¿qué hago?

El table.html descargado solo contiene la estructura de la etiqueta `<table>` (puede incluir un `<div>` exterior responsivo), sin un esqueleto HTML completo (`<html>` / `<head>` / `<body>`); está diseñado como fragmento para incrustar fácilmente en páginas web existentes. Puedes añadir manualmente el esqueleto completo con una herramienta de formateo HTML, o pegarlo directamente en la posición correspondiente de tu proyecto.

La página se ralentiza al generar tablas de 1000+ filas, ¿qué hago?

La herramienta establece por defecto un límite de protección de 1000 filas, mostrando "truncado" si se supera. Si realmente necesitas generar una tabla grande de 5000 filas, puedes subir el ajuste "Máximo de filas" a 10000, pero se recomienda: ① dividir en tablas paginadas (50 filas por página); ② implementar scroll virtual con IntersectionObserver; ③ o usar bibliotecas especializadas como TanStack Table / AG Grid en escenarios de visualización de datos.

¿Se suben los datos a algún servidor? ¿Es segura la privacidad?

Ejecución 100% local en el navegador. Todo el procesamiento de JSON, generación de HTML, copia y descarga se realiza en tu navegador con JavaScript; la lectura de archivos también se procesa únicamente con FileReader local. No se envía nada a ningún servidor. Puedes usar con total confianza JSON que contenga respuestas sensibles de API o campos internos de negocio; al cerrar la página se eliminan todos los datos.

Solución de problemas

Aparece el aviso "Ingresa datos JSON" o similar

El campo de entrada izquierdo está vacío o solo contiene espacios. Asegúrate de pegar contenido JSON válido, o haz clic en "Sample" para cargar datos de ejemplo, o en "Upload" para seleccionar un archivo .json / .txt.

Aparece el aviso "Unexpected token ... in JSON at position N"

El formato JSON no es válido. Causas comunes: ① hay una coma extra al final (por ejemplo [{},{},]); ② se usaron comillas simples en lugar de dobles; ③ se usó sintaxis de objeto JS ({key: value}) en lugar de JSON ({"key": "value"}). Puedes usar una herramienta de formateo JSON para validar y reparar previamente.

La tabla generada solo tiene cabecera, sin filas de datos

Los datos JSON son un array vacío [] o un objeto vacío {}. Ante un array vacío, la herramienta devuelve el comentario "<!-- No valid objects found -->". Añade al menos un objeto en el JSON de origen.

En modo aplanar los nombres de columna son demasiado largos (p. ej. user.profile.address.city.country.code)

Cuando la profundidad de anidamiento es excesiva se recomienda: ① cambiar al modo "Claves de primer nivel" (solo toma los campos de primer nivel y los objetos anidados quedan como una columna JSON); ② modificar la estructura del JSON original para reducir anidamiento innecesario; ③ usar el botón Reset de la barra de herramientas para restablecer la configuración de aplanado por defecto.

Los estilos de las clases de Tailwind no se aplican tras inyectarlos

La herramienta emite por defecto estilos en línea (como padding, background) que sobrescriben las utility classes de Tailwind con el mismo nombre. Recomendaciones: ① desactivar las opciones equivalentes de la barra de herramientas (por ejemplo, rayas cebra) antes de usar Tailwind para el color de fondo; ② o usar PostCSS en el HTML generado para eliminar el atributo style en línea.

La altura de la tabla se comprime tras activar el envoltorio responsivo

El "Envoltorio responsivo" hace que la altura del div exterior siga a la tabla. Si tu contenedor padre es un layout flex y no tiene altura definida, la tabla interna puede comprimirse. Añade min-h-0 al contenedor padre o define la altura de la tabla.

El table.html descargado se ve en blanco al abrirlo en el navegador

El archivo descargado solo contiene el fragmento <table> (puede incluir el <div> exterior responsivo), sin un esqueleto HTML completo (<!doctype html> / <html> / <head> / <body>). Está diseñado para incrustarse fácilmente en páginas web existentes. Puedes añadir el esqueleto completo con una herramienta de formateo HTML, o pegarlo directamente en la posición correspondiente de tu proyecto.

Los caracteres de las cabeceras en español se ven corruptos

Las claves del JSON de origen contienen caracteres en español; asegúrate de que el archivo origen esté en UTF-8. Si copiaste JSON desde Excel, puede haber sido convertido a GBK; primero usa una herramienta de conversión de codificación para pasarlo a UTF-8 y luego pégalo.

Quiero modificar en lote la tabla generada (por ejemplo, cambiar el logo o los colores)

Tras generar, copia el HTML en la pestaña Code derecha y reemplaza en lote los atributos de estilo con sed / PostCSS / un script propio. Comando habitual: sed -i '' 's/#f9fafb/#tu-color/g' table.html.

La página se ralentiza al generar tablas de 1000+ filas

La herramienta establece por defecto un límite de protección de 1000 filas. Puedes subir maxRows a 10000 en la barra de herramientas, pero el rendimiento del navegador al renderizar un DOM muy grande (>1000 nodos) disminuye notablemente. Recomendaciones: ① dividir en tablas paginadas (50 filas por página); ② implementar scroll virtual con IntersectionObserver; ③ o usar bibliotecas especializadas como TanStack Table / AG Grid en escenarios de visualización de datos.

Se ha perdido el historial

El historial se almacena en el localStorage del navegador; al limpiar los datos del navegador, cambiar al modo incógnito o usar otro navegador se perderá. La herramienta no sube el historial a ningún servidor, por lo que no se puede sincronizar entre dispositivos.

Tras el límite de filas ya no se ven los datos originales

Por defecto maxRows=1000, al superarlo se trunca. Si tu origen tiene >1000 filas pero solo necesitas previsualizar las primeras N, reduce maxRows (por ejemplo a 100) para obtener el resultado más rápido. Si necesitas los datos completos, se recomienda procesarlos directamente con scripts de Python Faker o Node.js.

Glosario

Tabla HTML (HTML Table)
Elemento estándar del W3C para presentar datos estructurados, compuesto por etiquetas semánticas como table / thead / tbody / tr / th / td / caption. El código generado por esta herramienta sigue estrictamente esta estructura.
Array JSON
Colección de objetos envuelta entre corchetes [...]. La herramienta toma cada objeto del array como una fila de la tabla; si está vacío, no se genera tabla (se muestra un aviso).
Objeto JSON
Colección de pares clave-valor envuelta entre llaves {}. La herramienta usa cada clave del objeto como cabecera y el valor como celda; un objeto único se envuelve automáticamente como tabla de una sola fila.
Aplanado anidado (Flatten)
Expandir recursivamente un objeto anidado en claves planas separadas por puntos; por ejemplo, {user:{name:'A'}} → 'user.name'. La herramienta admite aplanado automático de hasta 6 niveles, con separador configurable.
thead / tbody
Dos particiones semánticas de la tabla HTML: thead envuelve la fila de cabecera (th), tbody envuelve las filas de datos (td). El código generado por esta herramienta distingue estrictamente ambas partes.
Caption
Etiqueta de título de la tabla, ubicada en la primera línea dentro de table. La herramienta admite texto de Caption personalizado; al activarlo se mostrará el título sobre la tabla, útil para SEO y accesibilidad.
Rayas cebra (Zebra Striping)
Patrón visual que alterna colores de fondo en filas pares e impares, comúnmente con la combinación #fff / #f9fafb. La herramienta lo activa con la casilla "Rayas cebra" y mejora notablemente la legibilidad en tablas largas.
Estilo en línea (Inline Style)
Escribir CSS directamente en el atributo style de las etiquetas HTML, en lugar de referenciar hojas de estilo externas. Por defecto la herramienta emite todos los estilos con style inline, listos para usar sin archivos CSS adicionales.
Gancho de clase CSS
Capacidad diferencial de la herramienta: inyecta cualquier cadena de clase (por ejemplo, clases de Tailwind) en la etiqueta `<table>`, integrándose con frameworks CSS existentes. Es la mejora clave frente a la competencia.
iframe sandbox
Modo de sandbox seguro de la etiqueta iframe en HTML, que permite restringir la ejecución de scripts, envíos de formularios, etc. La herramienta usa un iframe con sandbox="allow-same-origin" para previsualizar el HTML generado y evitar la ejecución accidental de scripts.
Resaltado por tipo (type-aware)
Capacidad diferencial de la herramienta: aplica colores diferentes según el tipo JS del valor de la celda (null / boolean / number / object / string), haciendo más intuitiva la depuración de datos de la API.
Historial en localStorage
Almacenamiento local de clave-valor del navegador (capacidad aproximada de 5-10 MB). La herramienta usa localStorage para conservar las últimas 200 entradas, recuperables tras refrescar o cerrar accidentalmente la página.
Envoltorio responsivo (Responsive Wrapper)
Añadir un `<div style="overflow-x:auto;max-width:100%;">` alrededor de la tabla para que aparezca automáticamente una barra de desplazamiento horizontal en pantallas estrechas. La herramienta lo activa por defecto y se puede desactivar en la barra de herramientas.
Debounce (antirrebote)
Técnica de optimización de rendimiento frontend: combina las devoluciones de llamada de eventos de alta frecuencia (como la entrada) en una sola ejecución tras la última activación. La herramienta aplica un debounce de 500 ms para evitar cuelgues al analizar archivos grandes.
W3C HTML5
Estándar HTML definido por el World Wide Web Consortium (W3C). El código generado por la herramienta cumple la especificación HTML5 y se renderiza correctamente en todos los navegadores modernos.

Comparativa de los tres modos de manejo de objetos anidados

La barra de herramientas ofrece tres modos para diferentes escenarios de anidamiento. Recomendamos elegir según la complejidad de la estructura JSON:

ModoComportamientoEjemploEscenario
Aplanar (Recomendado)Expande recursivamente los objetos anidados en claves separadas por puntos (profundidad ≤ 6)user.name / user.tags.0Estructuras anidadas de APIs reales como GitHub, Stripe o Notion; cuando deseas una columna por cada campo
Claves de primer nivelSolo toma las claves de primer nivel del objeto; los objetos/arrays anidados se tratan como una sola columna con su cadena JSONuser / tagsEstructuras anidadas variables o demasiado profundas (>6 niveles); cuando solo interesa una vista general de los campos de primer nivel
Como cadenaTrata todos los valores como cadenas; los objetos anidados se convierten directamente con JSON.stringifyuser (como un fragmento JSON completo)Depuración: cuando se desea conservar la estructura JSON original para inspección visual

Tabla rápida de las 14 opciones configurables de la barra de herramientas

Resumen de las 14 opciones configurables de la barra de herramientas y sus diferencias visuales, para elegir combinaciones con rapidez:

OpciónTipoEfecto visual / Comportamiento
includeIndexcheckboxAñade una columna de numeración # al inicio de la tabla (incremento desde 1)
stripedcheckboxAlterna el color de fondo de filas pares e impares (blanco / #f9fafb)
borderedcheckboxBordes grises de 1 px en las celdas + línea inferior de 2 px en la cabecera
hovercheckboxAl pasar el ratón sobre una fila, toda ella se vuelve gris claro con fondo #f9fafb
compactcheckboxReduce el padding de las celdas de 10px×14px a 6px×8px
responsivecheckboxEnvuelve la tabla en un contenedor con overflow-x:auto para desplazamiento horizontal en pantallas estrechas
flattenModeselectManejo de anidamiento: Aplanar (Recomendado) / Claves de primer nivel / Como cadena
tableClasstextClase CSS personalizada inyectada en <table class="...">
nullPlaceholdertextTexto mostrado en celdas con null / undefined (vacío muestra 'null')
maxRowsnumberNúmero máximo de filas a generar (1-10000); si se supera se trunca y se avisa
captiontextTexto del título personalizado sobre la tabla (caption-side: top)
indexHeadertextTexto de la cabecera de la columna de índice (por defecto #)
flattenSeparatortextSeparador de claves en modo aplanar (por defecto ., puede ser _ / - etc.)
wrapperClasstextClase CSS personalizada para el <div> exterior responsivo (usuarios avanzados)

Tabla rápida de las reglas de resaltado por tipo en las celdas

La herramienta aplica automáticamente distintos colores según el tipo JavaScript del valor JSON, para identificar el tipo de dato rápidamente:

Tipo JSDetecciónEstilo aplicadoEjemplo de salida
null / undefinedval === null || val === undefinedcolor: #9ca3af; font-style: italic; muestra el texto del marcador (personalizable)<span style="color:#9ca3af;font-style:italic;">N/A</span>
boolean (true)typeof val === 'boolean' && valcolor: #059669;<span style="color:#059669;">true</span>
boolean (false)typeof val === 'boolean' && !valcolor: #dc2626;<span style="color:#dc2626;">false</span>
numbertypeof val === 'number'color: #2563eb;<span style="color:#2563eb;">42</span>
object / array (modo aplanar)type === 'object' + en modo aplanar se accede por rutaEl objeto anidado se extrae por ruta hasta obtener un valor atómicouser.name → 'Alice'
object / array (otros modos)typeof val === 'object'Se aplica JSON.stringify, se escapa y se trunca a 50 caracteres, en púrpura cursiva con title para ver el JSON completo al pasar el ratón<span style="color:#7c3aed;font-style:italic;" title="...">{"id":1…</span>
stringresto de casosColor de texto por defecto #4b5563Jennifer Martinez

Privacy & Security

Esta herramienta de JSON a HTML realiza todo el procesamiento de JSON, aplanado de objetos anidados, generación de HTML y operaciones de copia/descarga íntegramente en tu navegador mediante JavaScript local. Ni los datos JSON introducidos ni el código HTML generado se suben a ningún servidor, ni se registran, almacenan en caché ni se guardan en la nube. Puedes usar con total confianza JSON que contenga respuestas internas de API o campos de negocio no publicados; al cerrar la página se eliminan todos los datos.

Authoritative References