JSON zu HTML-Tabelle
Kostenloses Online-Tool, um JSON in HTML zu konvertieren. Wandelt JSON-Arrays oder verschachtelte Objekte mit einem Klick in direkt einbettbaren HTML-Tabellencode um. Unterstützt automatisches Abflachen verschachtelter Objekte (Punkt-getrennte Schlüssel wie user.name), benutzerdefinierte CSS-Klassen, responsiven horizontalen Scroll, 6 Visualisierungs-Optionen, Null-Platzhalter, Zeilenlimit-Schutz und duale Vorschau mit Code- und iframe-Tab inklusive typbasierter Hervorhebung – vollständig im Browser.
Ähnliche Tools
Über JSON zu HTML und HTML-Tabellen
Ein JSON-zu-HTML-Konverter ist ein Werkzeug, das JSON-Datenstrukturen automatisch in standardkonformen HTML-Tabellencode übersetzt. Es befreit Entwickler vom wiederholten Schreiben von `<table>`-, `<tr>`- und `<td>`-Vorlagen und eignet sich besonders, um API-Antworten, Konfigurationsdateien oder beliebige JSON-Strukturen schnell als Webtabelle darzustellen.
Die HTML-Tabelle (HTML Table) ist das W3C-standardisierte Element zur strukturierten Datenanzeige und besteht aus dem Container `<table>`, dem Kopfbereich `<thead>`, dem Datenbereich `<tbody>`, den Zeilen `<tr>`, den Kopfzellen `<th>`, den Datenzellen `<td>` und der Tabellenüberschrift `<caption>`. Der generierte Code folgt strikt dieser semantischen Struktur, was SEO-Crawlern und Screenreadern (Barrierefreiheit) entgegenkommt.
JSON-zu-HTML-Tools im Netz lassen sich grob in drei Kategorien einteilen: Die erste Gruppe erzeugt nur HTML-Code-Strings (z. B. tooltt.com, codebeautify.org) mit Fokus auf „Copy & Paste“; die zweite Gruppe bietet zusätzlich eine Live-Vorschau (dieses Tool, jsontables.com, TableConvert) mit Fokus auf „What you see is what you get“; die dritte Gruppe unterstützt verschachtelte Expansion und Tailwind-Klassen-Injektion (differenzierende Positionierung dieses Tools) und richtet sich an Entwickler, die JSON in moderne Frontend-Projekte einbetten.
Das „Nested Flatten“ dieses Tools ist ein klarer Differentiator gegenüber den meisten Wettbewerbern: Während herkömmliche Tools aus `{user:{name:'Alice'}}` schlicht den String `{"name":"Alice"}` erzeugen, expandiert dieses Tool rekursiv in eine Spalte `user.name` (bis 6 Ebenen Tiefe, Trennzeichen konfigurierbar). So lassen sich reale Business-Daten aus GitHub-, Stripe- oder Notion-APIs direkt verarbeiten, ohne sie vorab mit jq oder Lodash abflachen zu müssen.
Ein weiterer Differentiator ist der „Custom CSS class hook“: Das Tool erzeugt nicht nur Inline-Styles, sondern erlaubt auch das Injizieren beliebiger Klassenzeichenketten direkt in das `<table>`-Tag. Damit können Nutzer von Tailwind, Bootstrap, Bulma, DaisyUI und anderen CSS-Frameworks den generierten HTML-Code direkt übernehmen und erhalten sofort den gewohnten Projekt-Look – ohne CSS von Hand anzupassen.
Anwendungsfälle
- Frontend-Entwicklung: JSON-Antworten von APIs schnell in HTML-Tabellen rendern und in Admin-Dashboards oder Dokumentationsseiten einbetten
- Tailwind- oder Bootstrap-Projekte: Tailwind- bzw. Bootstrap-Klassen direkt in das Feld „table class name“ eintragen und nahtlos mit dem bestehenden Designsystem verbinden
- Responsive Webseiten: Horizontaler Scroll-Wrapper ist standardmäßig aktiv, sodass mobile Tabellen das Layout nicht zerschießen
- Datenvisualisierung: Formatierte Tabellen direkt in Blogs, Dokumentationen, Confluence oder Notion einbetten, wo HTML unterstützt wird
- Report-Erstellung: Backend-exportierte JSON-Daten schnell in HTML-E-Mail-Reports für Stakeholder verwandeln
- Frontend-Prototyping: Mit echten Daten Tabellenlayouts prüfen, um vor der Übergabe mit Produkt und Design abzustimmen
- CMS-Integration: Statische HTML-Tabellen-Snippets für WordPress, Drupal und andere CMS erstellen und so die Komplexität der Template-Engines umgehen
- Tests und Debugging: In der Browser-Konsole `JSON.stringify` einsetzen, die Ausgabe hier einfügen und komplexe verschachtelte Daten schnell als 2D-Tabelle prüfen
- E-Mail-Vorlagen: Tabellen-HTML in HTML-Mails einbetten (Outlook und Co. benötigen ggf. zusätzliche Tests zur Kompatibilität)
- API-Dokumentation: HTML-Tabellen in Markdown-, Swagger- oder Redoc-Dokumenten einsetzen, um die Standard-JSON-Beispiele zu ersetzen
- Lehre und Unterricht: Verschachtelte JSON-Hausaufgaben von Studierenden in eine einheitliche Tabelle flatten und gemeinsam korrigieren
- Datenbereinigungs-Reports: Verschachtelte Datenbank-Exporte im Flatten-Modus in eine Tabelle überführen und Felder bequem vergleichen
Anleitung
- JSON-Array (empfohlen) oder ein einzelnes Objekt links in den Editor einfügen, alternativ „Sample“ klicken, um die drei Produktbeispiele zu laden, oder „Upload“ zum Hochladen einer .json- bzw. .txt-Datei
- In der Toolbar den Verschachtelungsmodus wählen (empfohlen: „Abflachen“) – verschachtelte Objekte werden automatisch zu Punkt-getrennten Schlüsseln wie `user.name`
- Auf „Convert“ klicken (oder einfach Enter drücken), um die Konvertierung zu starten; ein 500-ms-Debounce schützt vor Flattereingaben
- Im Code-Tab rechts den HTML-Code mit Syntax-Highlighting ansehen und im Preview-Tab die Tabelle in der iframe live rendern
- In der Toolbar Stiloptionen aktivieren (Zebrastreifen / Rahmen / Hover / Kompakt / Responsiv), eigene Tabellen-Klassen setzen und den Null-Platzhalter konfigurieren – die Vorschau aktualisiert sich automatisch
- Bei Bedarf auf „Copy“ klicken, um den HTML-Code zu kopieren, oder auf „Download“ für table.html; mit „Reset“ stellst du alle Optionen wieder auf den Standard zurück
Funktionen
- Automatisches Abflachen verschachtelter Objekte: `{user:{name,age}}` wird rekursiv zu den Punkt-getrennten Schlüsseln `user.name`, `user.age` usw. expandiert (Trennzeichen konfigurierbar) – kein eigenes Flatten-Skript nötig
- Drei Verschachtelungsmodi: Abflachen (Empfohlen, automatische Expansion bis 6 Ebenen) / Schlüssel der ersten Ebene (verschachtelte Objekte bleiben als eigene Spalte) / Als Zeichenkette (verschachtelte Objekte werden als JSON-String angezeigt)
- CSS-Klassen-Hook: Beliebige Klassenzeichenketten werden in `<table>` und optional in den umschließenden `<div>` injiziert – nahtlose Integration mit Tailwind, Bootstrap, Bulma und anderen CSS-Frameworks
- Responsiver horizontaler Scroll: Standardmäßig wird die Tabelle in einen Container mit `overflow-x:auto` eingebettet, sodass auf schmalen Bildschirmen automatisch eine horizontale Scrollleiste erscheint, ohne das Seitenlayout zu sprengen
- 6 Visualisierungs-Optionen: Zebrastreifen, Rahmen, Zeilen-Hover, Kompaktmodus, Indexspalte (#) und Tabellen-Caption – alle Checkboxen wirken sofort
- Duale Vorschau mit Code- und iframe-Tab: Code-Tab zeigt HTML-Quelltext mit Syntax-Highlighting, Preview-Tab rendert die Tabelle live in einer sandboxed iframe
- Typbasierte Hervorhebung: null wird grau-kursiv dargestellt (Platzhaltertext anpassbar), Booleans true/false erscheinen grün/rot, Zahlen blau, verschachtelte Objekte zeigen beim Hovern das vollständige JSON
- Zeilenlimit-Schutz: Standardobergrenze 1000 Zeilen (1–10000 einstellbar), Überschreitungen werden automatisch abgeschnitten und mit „Abgeschnitten“-Hinweis versehen, um Browser-Ruckler bei riesigen DOMs zu vermeiden
- Live-Generierungsstatistik: Das rechte Panel zeigt „X Zeilen × Y Spalten generiert“ sowie ein Truncated-Badge – bei großen JSON-Daten siehst du die Dimension auf einen Blick
- Kopieren und Herunterladen mit einem Klick: Im Code-Modus kannst du den HTML-Code in die Zwischenablage kopieren oder als table.html-Datei herunterladen, um sie direkt auf deiner Website einzubinden
- Beispieldaten und Datei-Upload: Drei integrierte Produktbeispiele (Laptop / Mouse / Desk Chair) lassen sich mit einem Klick laden, plus Drag-and-Drop-Upload für .json- und .txt-Dateien
- 14 konfigurierbare Optionen: Über die Reset-Schaltfläche in der Toolbar setzt du alle 14 Optionen gleichzeitig auf die Standardwerte zurück – ideal zum schnellen Ausprobieren
- Lokaler Verlauf: Die letzten 200 Eingaben werden im localStorage gespeichert und lassen sich nach einem Reload oder versehentlichen Schließen wiederherstellen
- Vollständig lokal im Browser: Parsen, Generieren, Kopieren und Herunterladen laufen komplett in deinem Browser – es werden keine Daten an einen Server übertragen
Codebeispiele
JavaScript: Verschachteltes Abflachen + Tailwind-Klassen-Integration
javascriptDer häufigste Anwendungsfall: Nach dem Aufruf der GitHub-API werden verschachtelte Objekte zu Punkt-Schlüsseln abgeflacht und mit Tailwind-Klassen ins Projekt integriert.
// 1) GitHub API aufrufen, um eine Benutzerliste zu holen
async function fetchUsers() {
const res = await fetch('https://api.github.com/users?per_page=10');
return await res.json();
}
// 2) Flatten-Funktion (entspricht der Logik dieses Tools)
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) Abgeflachte Daten in HTML-Tabelle umwandeln, Tailwind-Klassen injizieren
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) In die Seite einhängen
const users = await fetchUsers();
const html = generateHtmlTable(users);
document.getElementById('table-container').innerHTML = html;
console.log('Generiert: ' + users.length + ' Zeilen, Spalten: ' + (Object.keys(flattenObject(users[0])).length));Python: Verschachteltes JSON in Flask in HTML-Tabelle umwandeln (ohne Frontend-Abhängigkeit)
pythonBeim serverseitigen Template-Rendering lässt sich die HTML-Tabelle direkt mit Python-Bordmitteln erzeugen – inklusive Flatten und Klassen-Injection.
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):
"""Verschachteltes Objekt rekursiv abflachen"""
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>Keine Daten</p>"
# Zeilenlimit
truncated = False
if len(data) > max_rows:
data = data[:max_rows]
truncated = True
# Jede Zeile abflachen
flat_rows = [flatten(row) for row in data]
# Alle Spaltennamen sammeln (per Set deduplizieren, Reihenfolge beibehalten)
columns = []
for row in flat_rows:
for k in row.keys():
if k not in columns:
columns.append(k)
# Kopfzeile erzeugen
thead = "".join(f'<th class="px-4 py-2 text-left bg-gray-100">{c}</th>' for c in columns)
# Tabellenzeilen erzeugen
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">Daten auf die ersten {max_rows} Zeilen gekürzt</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)Kommandozeile: jq-Flatten + dieses Tool für statische HTML-Reports
bashOperations-Szenario: Verschachtelte JSON-Logs mit jq aggregrieren und abflachen, dann in dieses Tool einfügen, um formatierte HTML-Reports mit Tailwind-Klassen zu erzeugen.
# 1) Verschachtelte Logs mit jq aggregrieren und zu Punkt-Schlüsseln abflachen
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) stats.json in dieses Tool einfügen
# In der Toolbar den Modus „Abflachen (Empfohlen)" wählen
# „Zebrastreifen + Responsiv + Rahmen" aktivieren
# In „table class name" eintragen: min-w-full text-sm border-collapse
# Null-Platzhalter setzen: - (fehlende Felder zeigen -)
# Caption setzen: 2026-07 Produktions-Fehlerlog-Statistik
# Convert klicken und table.html herunterladen
# 3) Auf S3/OSS als statische Seite hochladen
aws s3 cp table.html s3://my-bucket/reports/2026-07.html --acl public-read
# Oder in Confluence / Notion / VuePress-Dokumentation einbetten
sed -i '' 's/min-w-full/min-w-full shadow-md/g' table.html
# Oder als HTML-E-Mail versenden
mutt -e "set content_type=text/html" -s "2026-07 Fehlerlog" your@email.com < table.htmlHäufig gestellte Fragen
Wie wandle ich JSON-Daten in eine HTML-Tabelle um?
Füge dein JSON-Array (jedes Element ist ein Objekt) links in den Editor ein und klicke in der Toolbar auf „Convert“. Im Code-Tab rechts erscheint der HTML-Tabellencode mit Syntax-Highlighting, im Preview-Tab siehst du die Tabelle in einer sandboxed iframe live gerendert. Mit „Copy“ kannst du den Code in jede beliebige HTML-Seite einfügen.
Können verschachtelte JSON-Objekte in eine HTML-Tabelle konvertiert werden?
Ja. Das Tool enthält einen eingebauten Flatten-Modus, der `{user:{name:'Alice',age:30}}` rekursiv in die Spalten `user.name` und `user.age` auflöst – bis zu einer Tiefe von 6 Ebenen. In der Toolbar kannst du alternativ auf „Schlüssel der ersten Ebene“ (verschachtelte Objekte bleiben als JSON-String in einer Spalte) oder „Als Zeichenkette“ (wird komplett als String behandelt) wechseln.
Kann ich das Trennzeichen für die abgeflachten Schlüssel ändern?
Standardmäßig wird `.` verwendet (`user.name`), passend zu gängigen Konventionen aus JavaScript, MongoDB und Lodash. Wenn du `user_name` oder `user/name` brauchst, kannst du das Trennzeichen im Eingabefeld der Toolbar anpassen (für fortgeschrittene Nutzer sichtbar).
Kann ich die generierte HTML-Tabelle individuell stylen?
Es gibt drei Wege zur individuellen Gestaltung: ① Die 6 Visualisierungs-Checkboxen in der Toolbar (Zebrastreifen / Rahmen / Hover / Kompakt / Index / Caption) wirken sofort; ② Im Feld „table class name“ trägst du eigene Klassen ein (z. B. Tailwinds `min-w-full border-collapse`), die in `<table class="…">` injiziert werden; ③ Du bearbeitest den generierten HTML-Code direkt.
Wird Tailwind oder Bootstrap unterstützt?
Ja. Trage Tailwind-Klassen wie `min-w-full border-collapse text-sm` oder Bootstrap-Klassen wie `table table-striped table-hover table-bordered` in das Feld „table class name“ ein – die Klassen werden direkt in das `<table>`-Tag injiziert. Hinweis: Die Inline-Styles des Tools haben die höchste Priorität und überschreiben einige Tailwind-Utilities (Hintergrund, Padding). Schalte in diesem Fall die entsprechenden Toolbar-Optionen (z. B. Zebrastreifen) aus, bevor du Tailwind nutzt.
Was ist der Unterschied zwischen Code- und Preview-Tab?
Der Code-Tab zeigt den HTML-Quelltext mit Syntax-Highlighting und eignet sich zum Kopieren und Bearbeiten. Der Preview-Tab rendert die Tabelle in einer sandboxed iframe in voller Treue zum späteren Erscheinungsbild. Der Inhalt ist identisch – du wechselst nur bequem zwischen Quelltext und fertiger Tabelle.
Ist die generierte HTML-Tabelle mobil-responsiv?
Ja. Standardmäßig ist die „Responsive Wrapper“-Option aktiv. Die Tabelle wird in einen `<div style="overflow-x:auto;max-width:100%;">` eingebettet. Sobald der Bildschirm schmaler als die Tabelle ist, erscheint automatisch eine horizontale Scrollleiste, sodass das Layout nicht zerrissen wird. Die Option lässt sich in der Toolbar abschalten.
Wie werden null, Booleans und Zahlen in den Zellen dargestellt?
Das Tool bietet typbasierte Hervorhebung: null erscheint grau-kursiv (Platzhaltertext in der Toolbar anpassbar, z. B. `N/A`, `-`, `leer`); Booleans true in Grün, false in Rot; Zahlen in Blau; normale Strings unverändert; verschachtelte Objekte werden im Flatten-Modus per Pfad ausgelesen, in den anderen Modi als JSON-String auf 50 Zeichen gekürzt.
Kann ich den generierten HTML-Code direkt auf einer Website verwenden?
Ja. Der Code folgt der W3C-HTML5-Tabellenstruktur (`<table>` / `<thead>` / `<tbody>` / `<caption>`) und das CSS ist als Inline-Style ausgegeben. Du kannst den Code direkt in jede HTML-Seite einfügen, ohne externe CSS- oder JS-Abhängigkeiten. Alternativ lädst du ihn als table.html-Datei herunter.
Worin unterscheidet sich JSON zu HTML von JSON zu CSV?
HTML-Tabellen sind ein gestyltes Visualisierungsformat und ideal, um Daten direkt in Webseiten einzubetten. CSV ist ein reines Textformat für Excel, Pandas oder Datenbanken. Beide werden aus derselben JSON-Quelle erzeugt – nutze dieses Tool, um Layout und Optik im Browser vorab zu prüfen, und exportiere die Daten anschließend mit dem JSON-zu-CSV-Tool.
Wie passe ich die Spaltenüberschriften an?
Das Tool verwendet automatisch die Schlüssel der ersten Ebene deiner JSON-Objekte als Spaltenüberschriften (im Flatten-Modus den vollständigen Pfad mit Punkt, z. B. `user.name`). Wenn du andere Überschriften brauchst (z. B. auf Deutsch): ① Benenne die Schlüssel in deinem JSON direkt um; ② Bearbeite den `<th>…</th>`-Inhalt im Code-Tab; ③ Ersetze die Überschriften per sed im fertigen HTML.
Die heruntergeladene table.html ist im Browser leer – was tun?
Die heruntergeladene table.html enthält nur das `<table>`-Fragment (ggf. mit Responsive-`<div>`) – ohne vollständiges HTML-Grundgerüst (`<html>` / `<head>` / `<body>`). Das ist absichtlich so, damit das Fragment sich leicht in bestehende Seiten einfügen lässt. Ergänze das Grundgerüst mit einem HTML-Formatierer oder füge das Fragment direkt an der gewünschten Stelle deines Projekts ein.
Beim Generieren von 1000+ Zeilen ruckelt die Seite – was hilft?
Das Tool hat einen Standard-Schutz von 1000 Zeilen und blendet „Abgeschnitten“ ein. Wenn du wirklich 5000 Zeilen brauchst, kannst du „Maximale Zeilen“ auf 10000 erhöhen. Empfohlen wird aber: ① Aufteilung in paginierte Tabellen (50 Zeilen pro Seite); ② Virtuelles Scrollen mit IntersectionObserver; ③ oder für Daten-Displays dedizierte Komponentenbibliotheken wie TanStack Table oder AG Grid.
Werden meine Daten an einen Server übertragen? Wie steht es um die Privatsphäre?
Alles läuft komplett lokal im Browser. Parsen, Generieren, Kopieren und Herunterladen geschehen ausschließlich per JavaScript in deinem Browser; Dateien werden nur über die lokale FileReader-API gelesen. Es werden keine Daten an Server gesendet. Auch JSON mit sensiblen API-Antworten oder internen Feldern kann bedenkenlos verwendet werden – beim Schließen des Tabs ist alles gelöscht.
Fehlerbehebung
Hinweis „Bitte JSON-Daten eingeben“ oder ähnliche Meldung
Das linke Eingabefeld ist leer oder enthält nur Leerzeichen. Stelle sicher, dass gültiges JSON eingefügt ist, klicke auf „Sample“, um Beispieldaten zu laden, oder auf „Upload“, um eine .json- bzw. .txt-Datei hochzuladen.
Hinweis „Unexpected token ... in JSON at position N“
Das JSON ist ungültig. Häufige Ursachen: ① Überzähliges Komma am Ende (z. B. [{},{},]); ② Einfache statt doppelte Anführungszeichen; ③ JavaScript-Objektsyntax (`{key: value}`) statt korrektem JSON (`{"key": "value"}`). Repariere die Datei vorher mit einem JSON-Formatierer.
Generierte Tabelle enthält nur die Kopfzeile, keine Datenzeilen
Deine JSON-Daten sind ein leeres Array [] oder ein leeres Objekt {}. Das Tool gibt in diesem Fall den Kommentar `<!-- No valid objects found -->` aus. Füge mindestens ein Objekt in deine JSON-Quelldaten ein.
Spaltenname im Flatten-Modus zu lang (z. B. user.profile.address.city.country.code)
Bei zu tiefer Verschachtelung empfiehlt sich: ① Wechsle in den Modus „Schlüssel der ersten Ebene“ (nur Top-Level-Felder, verschachtelte Objekte als JSON-String in einer Spalte); ② Vereinfache die JSON-Struktur; ③ Über die Reset-Schaltfläche der Toolbar stellst du die Standard-Flatten-Konfiguration wieder her.
Tailwind-Klassen wirken nach der Injektion nicht
Das Tool gibt standardmäßig Inline-Styles (z. B. Padding, Hintergrund) aus, die gleichnamige Tailwind-Utilities überschreiben. Empfehlung: ① Schalte die passenden Toolbar-Optionen ab (z. B. Zebrastreifen), bevor du Hintergrundfarben per Tailwind setzt; ② oder entferne die Inline-Style-Attribute im Nachgang mit PostCSS.
Höhe der Tabelle wird durch den Responsive-Wrapper gestaucht
„Responsive Wrapper“ richtet die Höhe des umschließenden div standardmäßig an der Tabelle aus. In Flex-Containern ohne feste Höhe kann die Tabelle gestaucht werden. Setze am Parent `min-h-0` oder gib der Tabelle eine explizite Höhe.
Heruntergeladene table.html ist im Browser leer
Die heruntergeladene Datei enthält nur das `<table>`-Fragment (ggf. mit Responsive-`<div>`) – ohne vollständiges HTML-Grundgerüst (`<!doctype html>` / `<html>` / `<head>` / `<body>`). Das ist absichtlich so, damit das Fragment sich leicht einfügen lässt. Ergänze das Grundgerüst mit einem HTML-Formatierer oder füge das Fragment direkt an der gewünschten Stelle ein.
Spaltenüberschriften mit Umlauten werden falsch dargestellt
Die Schlüssel in deinem JSON enthalten deutsche Umlaute – stelle sicher, dass die Quelldatei in UTF-8 kodiert ist. Aus Excel kopierte Daten liegen manchmal in Windows-1252 vor; wandle sie zuerst in UTF-8 um, bevor du sie einfügst.
Generierte Tabelle im Stapel anpassen (z. B. Logo ersetzen, Farbe ändern)
Kopiere den HTML-Code aus dem Code-Tab und ersetze Stilattribute stapelweise per sed, PostCSS oder eigenem Skript. Häufig genutzt: `sed -i '' 's/#f9fafb/#your-color/g' table.html`.
Ruckler beim Generieren von 1000+ Zeilen
Das Tool hat einen Standard-Schutz von 1000 Zeilen. Du kannst `maxRows` in der Toolbar auf bis zu 10000 erhöhen, beachte aber, dass Browser bei sehr großen DOMs (>1000 Knoten) deutlich langsamer werden. Empfehlung: ① Paginierung in 50-Zeilen-Seiten; ② Virtuelles Scrollen mit IntersectionObserver; ③ oder dedizierte Komponentenbibliotheken wie TanStack Table oder AG Grid.
Verlauf verschwunden
Der Verlauf wird im localStorage des Browsers gespeichert und geht verloren, wenn du Browserdaten löschst, in den Inkognito-Modus wechselst oder einen anderen Browser nutzt. Das Tool synchronisiert den Verlauf nicht mit irgendeinem Server, daher gibt es keine plattformübergreifende Wiederherstellung.
Nach dem Zeilenlimit sind die Originaldaten nicht mehr sichtbar
Standard ist `maxRows=1000` – alles darüber wird gekürzt. Wenn deine Quelldaten >1000 Zeilen umfassen, du aber nur die ersten N Zeilen brauchst, setze `maxRows` kleiner (z. B. 100), um schneller ein Ergebnis zu erhalten. Für die Vollmenge empfiehlt sich ein eigenes Skript (z. B. Python, Node.js).
Glossar
- HTML-Tabelle (HTML Table)
- W3C-standardisiertes Element zur strukturierten Datenanzeige, bestehend aus table, thead, tbody, tr, th, td und caption. Der generierte Code folgt strikt dieser Struktur.
- JSON-Array
- Eine mit eckigen Klammern […] umschlossene Sammlung von Objekten. Jedes Objekt wird zu einer Tabellenzeile; ein leeres Array erzeugt keine Tabelle (Hinweistext erscheint).
- JSON-Objekt
- Eine mit geschweiften Klammern {} umschlossene Sammlung von Schlüssel-Wert-Paaren. Jeder Schlüssel wird zur Spaltenüberschrift, jeder Wert zur Zelle; ein einzelnes Objekt wird automatisch in eine einzeilige Tabelle verpackt.
- Verschachtelung abflachen (Flatten)
- Rekursive Expansion verschachtelter Objekte zu Punkt-getrennten Schlüsseln, z. B. {user:{name:'A'}} → 'user.name'. Das Tool unterstützt automatisches Abflachen bis 6 Ebenen, das Trennzeichen ist konfigurierbar.
- thead / tbody
- Zwei semantische Bereiche der HTML-Tabelle: thead umschließt die Kopfzeile (th), tbody die Datenzeilen (td). Der generierte Code trennt beide Bereiche konsequent.
- Caption
- Tag für die Tabellenüberschrift, das innerhalb der Tabelle ganz oben steht. Das Tool unterstützt einen individuellen Caption-Text; aktiviert erscheint die Überschrift über der Tabelle und verbessert SEO sowie Barrierefreiheit.
- Zebrastreifen (Zebra Striping)
- Visuelles Muster, bei dem gerade und ungerade Zeilen abwechselnd unterschiedliche Hintergrundfarben erhalten, häufig #fff und #f9fafb. Wird im Tool über die Checkbox „Zebrastreifen“ aktiviert und verbessert die Lesbarkeit langer Tabellen deutlich.
- Inline-Style
- CSS-Direktformatierung über das style-Attribut eines HTML-Tags, anstatt über externe Stylesheets. Das Tool gibt standardmäßig alle Stile als Inline-Style aus – du kannst den Code sofort übernehmen, ohne weitere CSS-Dateien.
- CSS-Klassen-Hook
- Differenzierende Fähigkeit dieses Tools: beliebige Klassenzeichenketten (z. B. Tailwind-Klassen) werden direkt in das `<table>`-Tag injiziert, sodass eine nahtlose Integration in bestehende CSS-Frameworks möglich ist. Ein zentrales Upgrade gegenüber Mitbewerbern.
- iframe sandbox
- Sicherer Sandkasten-Modus des iframe-Tags, mit dem sich Skriptausführung, Formularübermittlung und Co. einschränken lassen. Das Tool nutzt eine iframe mit `sandbox="allow-same-origin"`, um die generierte HTML-Vorschau gefahrlos anzuzeigen.
- Typbasierte Hervorhebung (type-aware)
- Differenzierende Fähigkeit dieses Tools: Je nach JavaScript-Typ des Zellenwerts (null, boolean, number, object, string) werden unterschiedliche Farben angewendet, was das Debuggen von API-Daten erleichtert.
- localStorage-Verlauf
- Lokaler Schlüssel-Wert-Speicher des Browsers (ca. 5–10 MB). Das Tool speichert die letzten 200 Eingaben persistent im localStorage, sodass sie nach einem Reload oder versehentlichen Schließen wiederhergestellt werden können.
- Responsiver Wrapper
- Umschließt die Tabelle mit `<div style="overflow-x:auto;max-width:100%">`, sodass auf schmalen Bildschirmen automatisch eine horizontale Scrollleiste erscheint. Standardmäßig aktiv, in der Toolbar deaktivierbar.
- Debounce
- Frontend-Leistungsoptimierung: Häufig ausgelöste Events (z. B. Eingaben) werden zusammengefasst und nur einmal nach einer kurzen Pause ausgeführt. Das Tool nutzt 500-ms-Debounce, um Ruckler beim Parsen großer Dateien zu vermeiden.
- W3C HTML5
- Vom World Wide Web Consortium (W3C) verabschiedete HTML-Norm. Der generierte Code ist HTML5-konform und wird in allen modernen Browsern korrekt dargestellt.
Vergleichstabelle der drei Verschachtelungsmodi
Die Toolbar bietet drei Modi für unterschiedliche Verschachtelungsszenarien – wähle je nach Komplexität der JSON-Struktur:
| Modus | Verhalten | Beispiel-Spaltenname | Szenario |
|---|---|---|---|
Abflachen (Empfohlen) | Verschachtelte Objekte werden rekursiv zu Punkt-getrennten Schlüsseln expandiert (Tiefe ≤ 6) | user.name / user.tags.0 | Verschachtelte Strukturen aus GitHub-, Stripe- oder Notion-APIs; jedes Feld soll eine eigene Spalte erhalten |
Schlüssel der ersten Ebene | Nur die Schlüssel der obersten Ebene werden verwendet; verschachtelte Objekte und Arrays werden als JSON-String in einer Spalte angezeigt | user / tags | Verschachtelungstiefe variabel oder zu tief (>6 Ebenen); nur die Top-Level-Felder sind relevant |
Als Zeichenkette | Alle Werte werden zwangsweise als String behandelt; verschachtelte Objekte werden direkt mit JSON.stringify serialisiert | user (als kompletter JSON-String) | Debugging-Szenarien, in denen die ursprüngliche JSON-Struktur visuell erhalten bleiben soll |
Übersicht der 14 konfigurierbaren Toolbar-Optionen
Alle 14 konfigurierbaren Optionen der Toolbar mit ihren visuellen Auswirkungen im Überblick:
| Option | Typ | Visuelle Wirkung / Verhalten |
|---|---|---|
includeIndex | checkbox | Fügt ganz links eine #-Indexspalte hinzu (aufsteigend ab 1) |
striped | checkbox | Abwechselnde Zeilenhintergrundfarben (weiß / #f9fafb) |
bordered | checkbox | 1-px grauer Rahmen um Zellen + 2-px Akzentlinie unter dem Header |
hover | checkbox | Beim Hovern wird die ganze Zeile hellgrau hinterlegt (#f9fafb) |
compact | checkbox | Zellenpadding wird von 10×14 px auf 6×8 px reduziert |
responsive | checkbox | Umschließender Container mit overflow-x:auto, horizontaler Scroll auf schmalen Bildschirmen |
flattenMode | select | Verschachtelungsbehandlung: Abflachen (Empfohlen) / Schlüssel der ersten Ebene / Als Zeichenkette |
tableClass | text | Eigene CSS-Klassen, die in <table class="…"> injiziert werden |
nullPlaceholder | text | Anzeigetext für null-/undefined-Zellen (leer = 'null') |
maxRows | number | Maximale Anzahl Zeilen (1–10000), darüber wird mit Hinweis abgeschnitten |
caption | text | Eigener Überschriftentext oberhalb der Tabelle (caption-side: top) |
indexHeader | text | Text der Kopfzeile der Indexspalte (Standard: #) |
flattenSeparator | text | Trennzeichen für die Schlüssel im Flatten-Modus (Standard: ., änderbar z. B. auf _ oder -) |
wrapperClass | text | Eigene CSS-Klassen für den responsiven <div>-Wrapper (für fortgeschrittene Nutzer) |
Übersicht der typbasierten Hervorhebung pro Zellentyp
Das Tool weist je nach JavaScript-Typ des JSON-Werts automatisch unterschiedliche Farben zu – so erkennst du Datentypen auf einen Blick:
| JS-Typ | Erkennung | Angewandter Stil | Beispielausgabe |
|---|---|---|---|
null / undefined | val === null || val === undefined | color: #9ca3af; font-style: italic; Platzhaltertext (anpassbar) | <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 (Flatten-Modus) | type === 'object' + Pfadauswertung im Flatten-Modus | Verschachtelte Objekte werden über den Pfad zum atomaren Wert aufgelöst | user.name → 'Alice' |
object / array (andere Modi) | typeof val === 'object' | JSON.stringify + Escaping + Kürzung auf 50 Zeichen, violett-kursiv, vollständiges JSON im title-Hover | <span style="color:#7c3aed;font-style:italic;" title="…">{"id":1…</span> |
string | sonstige Fälle | Standardtextfarbe #4b5563 | Jennifer Martinez |
Privacy & Security
Dieses JSON-zu-HTML-Tool führt sämtliche JSON-Analyse, Verschachtelungs-Flatten, HTML-Generierung sowie Kopier- und Download-Operationen vollständig lokal in deinem Browser per JavaScript aus. Weder die eingegebenen JSON-Daten noch der erzeugte HTML-Code werden an irgendeinen Server übertragen, in der Cloud gespeichert oder protokolliert. Auch JSON mit sensiblen API-Antworten oder internen Geschäftsfeldern lässt sich bedenkenlos verarbeiten – beim Schließen des Tabs werden alle Daten vollständig entfernt.
Authoritative References
- JSON-Komprimierung
- CSV zu JSON
- JSON zu CSV
- JSON Diff
- JSON Escape / Unescape
- JSON Flatten
- JSON-Formatierung
- JSON-Generator
- JSONPath Online-Abfrage
- JSON zusammenführen
- JSON reparieren
- JSON Schema Validator
- JSON sortieren
- JSON Stringify
- JSON zu HTML-Tabelle
- JSON zu Java
- JSON zu Markdown
- JSON in SQL umwandeln
- JSON zu TOML
- JSON zu TypeScript
- XML zu JSON
- JSON zu XML
- YAML zu JSON
- JSON zu YAML
- JSON zu Python
- JSON zu Go
- JSON zu Rust
- JSON zu Swift
- JSON zu C#
- JSON zu C++
- JSON zu PHP