JSON naar HTML-tabel

Opties:|

Gratis online JSON naar HTML-tool: zet JSON-arrays of geneste objecten met één klik om naar standaard HTML-tabelcode die direct in webpagina's kan worden ingesloten. Ondersteunt nesting afvlakken (user.name), aangepaste CSS-klasse, responsieve horizontale scroll, 6 visuele stijlen, null-tijdelijke aanduiding, rijlimietbeveiliging, dubbele Code- en iframe-tabbladen met realtime voorvertoning, typebewuste markering en lokale geschiedenis.

Gerelateerde aanbevelingen

Over JSON naar HTML en HTML-tabellen

Een JSON naar HTML-tool (JSON to HTML Converter) is een handig hulpmiddel dat JSON-datastructuren automatisch omzet in standaard HTML-tabelcode. Het haalt ontwikkelaars weg uit het herhalende werk van het handmatig schrijven van `<table>` / `<tr>` / `<td>`-templates en is bijzonder geschikt voor scenario's waarin geneste data van API's, configuratiebestanden of andere JSON-structuren snel als webtabel moeten worden weergegeven.

De HTML-tabel (HTML Table) is het gestructureerde dataweergave-element volgens de W3C-standaard, opgebouwd uit semantische tags zoals de `<table>`-container, `<thead>` voor de kop, `<tbody>` voor de body, `<tr>` voor rijen, `<th>` voor kopcellen, `<td>` voor datacellen en `<caption>` voor de titel. De code die deze tool genereert volgt strikt deze semantische structuur, wat gunstig is voor SEO-crawling en toegankelijkheid (schermlezers kunnen het herkennen).

Er bestaan drie categorieën JSON naar HTML-tools op de markt: de eerste genereert uitsluitend HTML-codestrings (zoals tooltt.com, codebeautify.org) met nadruk op 'kopiëren en gebruiken'; de tweede biedt zowel visuele voorvertoning (zoals deze tool, jsontables.com, TableConvert) met nadruk op 'what you see is what you get'; de derde ondersteunt nestinguitvouwing en Tailwind-class-injectie (het onderscheidende positionering van deze tool), geschikt voor engineers die JSON in moderne frontend-projecten willen inbedden.

De 'Nesting afvlakken' van deze tool is een onderscheidend voordeel ten opzichte van de meeste concurrenten: traditionele tools geven `{user:{name:'Alice'}}` direct weer als de tekenreeks `{"name":"Alice"}`, terwijl deze tool recursief uitvouwt tot de kolom `user.name` (tot 6 diepteniveaus, scheidingsteken aanpasbaar). Daardoor kun je direct geneste structuren verwerken van GitHub API, Stripe API, Notion API en andere complexe echte bedrijfsdata, zonder vooraf met jq of lodash af te vlakken.

Een ander onderscheidend voordeel is de 'Aangepaste CSS-klasse-haken': de tool genereert niet alleen inline style, maar staat ook toe elke class-tekenreeks in de `<table>`-tag te injecteren. Daardoor kunnen gebruikers van populaire CSS-frameworks zoals Tailwind, Bootstrap, Bulma en DaisyUI de gegenereerde HTML direct hergebruiken en dezelfde ontwerpstijl als hun project aanhouden, zonder handmatig CSS aan te passen.

Toepassingsgevallen

  • Frontend-ontwikkeling: render JSON-data van API's snel als HTML-tabellen en embed ze in admin-dashboards of documentatiepagina's
  • Tailwind- of Bootstrap-projecten: vul in 'table class naam' direct Tailwind- of Bootstrap-klassen in voor naadloze integratie met het bestaande stijlsysteem
  • Responsieve webpagina's: standaard ingeschakelde horizontale scrollwikkel voorkomt dat mobiele tabellen de layout oprekken
  • Datavisualisatie: plak opmaaktabellen in platforms die HTML-insluiting ondersteunen, zoals blogs, documentatie, Confluence en Notion
  • Rapportgeneratie: zet backend-geëxporteerde JSON-data snel om in HTML-e-mailrapporten die je naar collega's kunt sturen
  • Frontend-prototyping: gebruik echte data tijdens het ontwerp om tabelstijlen te previewen, zodat je vóór oplevering kunt afstemmen met product en design
  • CMS-systemen: maak statische HTML-tabelfragmenten voor WordPress, Drupal en andere CMS'en om de complexiteit van template-engines te vermijden
  • Testen en debuggen: gebruik JSON.stringify in de browserconsole en plak de uitvoer hier om de 2D-structuur van complexe geneste data snel te previewen
  • E-mailtemplates: integreer tabel-HTML in HTML-e-mails (let op: test compatibiliteit met clients zoals Outlook)
  • API-documentatie: embed HTML-tabellen in Markdown, Swagger of Redoc als alternatief voor standaard JSON-voorbeelden
  • Onderwijs: zet geneste JSON-opdrachten van studenten in datastructuurvakken om naar uniforme tabellen voor gezamenlijke beoordeling
  • Data-cleaningrapporten: zet geneste JSON uit database-exporten via de afvlakmodus om naar tabellen, handig voor het vergelijken van velden

Hoe te gebruiken

  1. Plak een JSON-array (aanbevolen) of een enkel object in de editor aan de linkerkant, klik op 'Sample' om 3 productvoorbeelden te laden, of klik op 'Upload' om een .json- of .txt-bestand te uploaden
  2. Kies de nestingsverwerkingsmodus op de werkbalk (aanbevolen: 'Afvlakken'); geneste objecten worden automatisch uitgevouwen tot punt-gescheiden sleutels zoals `user.name`
  3. Klik op de knop 'Convert' (of druk op Enter) om de conversie te starten; tijdens het typen is er 500ms debounce-beveiliging
  4. Bekijk de HTML-tabelcode met syntaxismarkering op het Code-tabblad aan de rechterkant, en de realtime iframe-rendering op het Preview-tabblad
  5. Vink op de werkbalk de stijlopties aan (zebrastrepen / randen / hover / compact / responsief), vul een aangepaste table class in en stel de null-tijdelijke aanduiding in; de voorvertoning wordt direct bijgewerkt
  6. Klik op 'Copy' om de HTML-code te kopiëren en in een webpagina te plakken, of klik op 'Download' om het bestand als table.html op te slaan; klik op Reset om opnieuw te beginnen

Functies

  • Automatisch afvlakken van geneste objecten: vouwt `{user:{name,age}}` recursief uit naar punt-gescheiden sleutels zoals `user.name`, `user.age` (scheidingsteken configureerbaar), zonder zelf afvlakscripts te schrijven
  • Drie modi voor nestingsverwerking: Afvlakken (Aanbevolen, diepte 6 lagen automatisch uitgevouwen) / Eerste-niveau sleutels (genest object als één kolom) / Als tekenreeks (genest object naar JSON-tekenreeks voor voorvertoning)
  • Aangepaste CSS-klasse-haken: injecteert een aangepaste class-tekenreeks in `<table>` en de optionele buitenste `<div>`, naadloze integratie met stijlsystemen zoals Tailwind, Bootstrap en Bulma
  • Responsieve horizontale scroll: standaard wordt een buitenste `overflow-x:auto`-container toegevoegd, zodat op smalle schermen automatisch een horizontale scrollbalk verschijnt en de paginalayout niet wordt vervormd
  • 6 configureerbare visuele stijlen: zebrastrepen, randen, rij-highlight bij hover, compacte modus, index-eerste-kolom (#), tabel-Caption-titel, geregeld via werkbalk-checkboxen met directe werking
  • Dubbele Code- en iframe-voorvertoningstabbladen: het Code-tabblad toont HTML-broncode met syntaxismarkering, het Preview-tabblad rendert de echte tabel in een sandbox-iframe in realtime
  • Typebewuste markering: null wordt grijs en cursief weergegeven (tijdelijke aanduiding aanpasbaar), booleans verschijnen groen voor true en rood voor false, getallen worden blauw, bij geneste objecten toont hover de volledige JSON
  • Rijlimietbeveiliging: standaard 1000 rijen (1-10000 instelbaar), invoer wordt automatisch afgekapt en in de UI wordt 'afgekapt' getoond, zodat de browser niet vastloopt op extreem grote DOM-rendering
  • Directe generatie-statistieken: het rechterpaneel toont realtime 'X rijen × Y kolommen gegenereerd' plus een afkap-badge, zodat je bij lange JSON meteen de dataschaal ziet
  • Kopiëren en downloaden met één klik: kopieer de HTML-broncode naar het klembord of download als table.html-bestand, klaar voor direct gebruik op je website
  • Voorbeelddata en bestandsupload: ingebouwde voorbeelden van 3 producten (Laptop / Mouse / Desk Chair) met één klik te laden, sleep of klik om .json- of .txt-bestanden te uploaden
  • Opties met één klik resetten: de Reset-knop rechts op de werkbalk herstelt alle 14 configureerbare opties in één keer naar de standaardwaarden, handig voor snelle experimenten
  • Lokale geschiedenis: localStorage bewaart de laatste 200 invoeren permanent, na verversen of per ongeluk sluiten snel te herstellen
  • Volledig lokaal in de browser: alle JSON-parsing, HTML-generatie, kopiëren en downloaden gebeurt in je browser, er wordt niets naar een server geüpload

Codevoorbeelden

JavaScript: nesting afvlakken + integratie met Tailwind class

javascript

De meest voorkomende toepassing in de praktijk: na het aanroepen van de GitHub API worden geneste objecten afgevlakt tot punt-gescheiden sleutels, waarna de Tailwind class in het project wordt geïntegreerd.

// 1) Roep de GitHub API aan om een gebruikerslijst op te halen
async function fetchUsers() {
  const res = await fetch('https://api.github.com/users?per_page=10');
  return await res.json();
}

// 2) Functie voor nesting afvlakken (equivalent aan de afvlaklogica van deze tool)
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) Zet afgevlakte data om naar een HTML-tabel en injecteer de 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) Injecteer in de pagina
const users = await fetchUsers();
const html = generateHtmlTable(users);
document.getElementById('table-container').innerHTML = html;
console.log('Generated ' + users.length + ' rows, column count ' + (Object.keys(flattenObject(users[0])).length));

Python: geneste JSON naar HTML-tabel in Flask (zonder frontend-afhankelijkheid)

python

Bij backend-templaterendering kun je met de standaard Python-bibliotheek dezelfde HTML-tabel genereren, met ondersteuning voor nesting afvlakken en class-injectie.

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):
    """Recursief geneste objecten afvlakken"""
    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>Geen data</p>"

    # Rijen afkappen
    truncated = False
    if len(data) > max_rows:
        data = data[:max_rows]
        truncated = True

    # Elke rij afvlakken
    flat_rows = [flatten(row) for row in data]

    # Alle kolomnamen verzamelen (set voor deduplicatie, invoegvolgorde behouden)
    columns = []
    for row in flat_rows:
        for k in row.keys():
            if k not in columns:
                columns.append(k)

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

    # Tabelrijen genereren
    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">Data afgekapt tot eerste {max_rows} rijen</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)

Commandoregel: jq afvlakken + deze tool genereert statisch HTML-rapport

bash

Operationscenario: nest JSON-logboeken aggregeren en met jq afvlakken, daarna in deze tool plakken om een HTML-rapport met Tailwind class te genereren.

# 1) Geneste logboeken met jq aggregeren en afvlakken tot punt-gescheiden sleutels
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) Plak stats.json in deze tool
#    Kies op de werkbalk de modus 'Afvlakken (Aanbevolen)'
#    Vink aan: 'Zebrastrepen + Responsieve wikkel + Randen'
#    Vul in bij table class naam: min-w-full text-sm border-collapse
#    Stel de null-tijdelijke aanduiding in: - (ontbrekende velden tonen -)
#    Stel de Caption in: 2026-07 Statistieken productiefoutenlogboek
#    Klik op Convert en download table.html

# 3) Upload naar S3 / OSS statische website
aws s3 cp table.html s3://my-bucket/reports/2026-07.html --acl public-read

# Of embed in Confluence / Notion / VuePress-documentatie
sed -i '' 's/min-w-full/min-w-full shadow-md/g' table.html

# Of verstuur als HTML-e-mail
mutt -e "set content_type=text/html" -s "2026-07 Foutenlogboek" your@email.com < table.html

Veelgestelde vragen

Hoe zet ik JSON-data om in een HTML-tabel?

Plak een JSON-array (waarbij elk element een object is) in het invoervak aan de linkerkant, klik op de knop 'Convert' op de werkbalk. Het Code-tabblad aan de rechterkant toont HTML-tabelcode met syntaxismarkering, schakel over naar het Preview-tabblad voor de live iframe-rendering, klik daarna op 'Kopiëren' om de code in elke HTML-pagina te plakken.

Kunnen geneste JSON-objecten ook naar een HTML-tabel worden omgezet?

Ja. De tool heeft een ingebouwde afvlakmodus die recursief `{user:{name:'Alice',age:30}}` uitvouwt tot de kolommen `user.name` en `user.age`, tot maximaal 6 diepteniveaus. Je kunt op de werkbalk ook schakelen naar de modus 'Eerste-niveau sleutels' (genest object als één JSON-tekenreekskolom) of 'Als tekenreeks' (volledig als tekenreeks behandelen).

Kan het scheidingsteken voor afgevlakte sleutels worden aangepast?

Standaard wordt `.` gebruikt als scheidingsteken (`user.name`), wat overeenkomt met gangbare conventies in JavaScript, MongoDB en Lodash. Als je `user_name` of `user/name` nodig hebt, kun je op de werkbalk het invoerveld 'Scheidingsteken' aanpassen (zichtbaar voor geavanceerde gebruikers).

Kan de gegenereerde HTML-tabel zelf worden vormgegeven?

De tool biedt drie manieren van stijlaanpassing: ① de 6 visuele schakelaars op de werkbalk (zebrastrepen / randen / hover / compact / index / Caption) werken direct; ② vul in het veld 'table class naam' een aangepaste class in (zoals Tailwind's `min-w-full border-collapse`), die wordt geïnjecteerd in `<table class="...">`; ③ pas de gegenereerde HTML direct aan voordat je hem gebruikt.

Wordt Tailwind of Bootstrap ondersteund?

Ja. Vul in het veld 'table class naam' Tailwind-klassen in (zoals `min-w-full border-collapse text-sm`) of Bootstrap-klassen (zoals `table table-striped table-hover table-bordered`), de tool injecteert deze klassen in de `<table>`-tag. Let op: de inline stijlen van de tool hebben de hoogste prioriteit en overschrijven bepaalde Tailwind-eigenschappen (achtergrondkleur, padding); schakel de bijbehorende werkbalkopties (zoals zebrastrepen) uit voordat je Tailwind gebruikt.

Wat is het verschil tussen het Code-tabblad en het Preview-tabblad?

Het Code-tabblad toont HTML-broncode met syntaxismarkering, handig om te kopiëren en te bewerken; het Preview-tabblad rendert de echte tabel in een sandbox-iframe, wat je ziet is wat je krijgt. De inhoud is identiek, alleen de presentatievorm verschilt, zodat je snel kunt schakelen tussen 'code bekijken' en 'effect bekijken'.

Is de gegenereerde HTML responsief op mobiele apparaten?

Ja. De tool zet standaard 'Responsieve wikkel' aan, waardoor om de `<table>` een `<div style="overflow-x:auto;max-width:100%;">`-container wordt geplaatst. Wanneer het scherm smaller is dan de tabel, verschijnt automatisch een horizontale scrollbalk zodat de tabel de paginalayout niet oprekt. Deze optie kan op de werkbalk worden uitgezet.

Hoe worden null, booleans en getallen in cellen weergegeven?

De tool past typebewuste markering toe: null wordt grijs en cursief weergegeven (de tijdelijke aanduiding kan op de werkbalk worden aangepast naar `N/A`, `-`, `leeg`, enz.), booleans true worden groen en false rood, getallen worden blauw, gewone tekenreeksen verschijnen ongewijzigd, geneste objecten worden in de afvlakmodus via het pad opgehaald en in andere modi als JSON-tekenreeks van maximaal 50 tekens weergegeven.

Kan de gegenereerde HTML-code direct op een website worden gebruikt?

Ja. De gegenereerde code volgt de standaard W3C HTML5-tabelstructuur (`<table>` / `<thead>` / `<tbody>` / `<caption>`), met CSS via inline style, en kan direct in elke HTML-pagina worden geplakt zonder externe CSS of JS. Je kunt het bestand ook downloaden als table.html.

Wat is het verschil tussen JSON naar HTML en JSON naar CSV?

Een HTML-tabel is een opgemaakt visueel formaat, ideaal om direct in webpagina's in te bedden; CSV is een platte-tekst dataformaat, geschikt voor import in Excel, Pandas of databases voor data-analyse. Beide worden uit dezelfde JSON-data gegenereerd, we raden aan eerst met deze tool de lay-out op de pagina te bekijken en daarna met de JSON naar CSV-tool de data-variant te exporteren.

Hoe wijzig ik de koptekst?

De tool gebruikt automatisch de eerste-niveau sleutels van het JSON-object als `<th>`-inhoud (in afvlakmodus is dat het volledige pad met punten, zoals `user.name`). Wil je een andere koptekst (bijvoorbeeld in het Nederlands), dan zijn er drie methoden: ① wijzig de sleutelnamen in de bronsJSON rechtstreeks; ② wijzig de `<th>...</th>`-inhoud handmatig op het Code-tabblad; ③ gebruik sed om de gegenereerde HTML in batch te vervangen.

De gedownloade table.html opent blanco in de browser, wat nu?

Het gedownloade table.html-bestand bevat alleen de `<table>`-tagstructuur (mogelijk met een responsieve buitenste `<div>`), zonder volledige HTML-skelet (`<html>` / `<head>` / `<body>`); het is ontworpen als fragmentcode om eenvoudig in bestaande webpagina's te worden ingebed. Voeg handmatig een volledig HTML-skelet toe met een HTML-formatteertool, of plak het fragment direct op de juiste plaats in je project.

De pagina loopt vast bij het genereren van een tabel met 1000+ rijen, wat kan ik doen?

De tool hanteert standaard een limiet van 1000 rijen; bij overschrijding verschijnt de melding 'afgekapt'. Als je echt een tabel van 5000 rijen nodig hebt, kun je 'Maximum aantal rijen' op de werkbalk verhogen naar 10000, maar we raden aan: ① splits de tabel in pagina's van 50 rijen; ② gebruik IntersectionObserver voor virtueel scrollen; ③ gebruik voor dataweergave gespecialiseerde componentbibliotheken zoals TanStack Table of AG Grid.

Worden mijn gegevens naar een server geüpload? Hoe zit het met privacy?

Volledig lokaal in de browser. Alle JSON-parsing, HTML-generatie, kopiëren en downloaden gebeurt in je browser via JavaScript, en het inlezen van bestanden vindt uitsluitend plaats via de lokale FileReader. Er wordt niets naar een server gestuurd. JSON met gevoelige API-respons of interne bedrijfsvelden kan veilig worden gebruikt; bij het sluiten van de pagina wordt alles gewist.

Probleemoplossing

Melding 'Voer JSON-data in' of een vergelijkbare fout

Het invoervak aan de linkerkant is leeg of bevat alleen spaties. Zorg dat je geldige JSON-inhoud hebt geplakt, klik op 'Sample' om voorbeelddata te laden, of klik op 'Upload' om een .json- of .txt-bestand te selecteren.

Melding 'Unexpected token ... in JSON at position N'

De JSON is niet geldig. Veelvoorkomende oorzaken: ① een overbodige komma aan het einde (zoals [{},{},]); ② enkele aanhalingstekens in plaats van dubbele; ③ JavaScript-objectnotatie (zoals {key: value}) in plaats van JSON ({"key": "value"}). Gebruik een JSON-formatteertool om het bestand te valideren en te repareren.

De gegenereerde tabel heeft alleen een kop en geen data

De JSON-data is een lege array [] of een leeg object {}. Bij een lege array retourneert de tool de opmerking '<!-- No valid objects found -->'. Voeg minstens één object toe aan de bronsJSON.

Kolomnamen in afvlakmodus zijn te lang (zoals user.profile.address.city.country.code)

Bij zeer diepe nesting adviseren we: ① schakel over naar de modus 'Eerste-niveau sleutels' (alleen topvelden, geneste objecten als hele JSON-kolom); ② wijzig de bronsJSON om onnodige nesting te verminderen; ③ gebruik de Reset-knop op de werkbalk om de standaard afvlakconfiguratie te herstellen.

Tailwind class-injectie heeft geen effect

De tool geeft standaard inline style (zoals padding, background) die dezelfde Tailwind utility-klassen overschrijft. Aanbevolen: ① schakel de bijbehorende werkbalkopties (zoals zebrastrepen) uit voordat je Tailwind gebruikt voor achtergrondkleur; ② verwijder na het genereren de inline style-attributen met PostCSS.

De tabelhoogte wordt ingedrukt na responsieve wikkel

'Responsieve wikkel' zorgt ervoor dat de buitenste div de hoogte van de tabel volgt. Als je bovenliggende container een flex-layout heeft zonder opgegeven hoogte, kan de tabel worden ingedrukt. Voeg min-h-0 toe aan de bovenliggende container of stel een tabelhoogte in.

De gedownloade table.html opent blanco in de browser

Het gedownloade bestand bevat alleen het <table>-fragment (mogelijk met responsieve buitenste <div>), zonder volledige HTML-skelet (<!doctype html> / <html> / <head> / <body>). Dit is bewust zo ontworpen om eenvoudig in bestaande webpagina's in te bedden. Voeg een volledig skelet toe met een HTML-formatteertool, of plak het fragment direct op de juiste plaats in je project.

Nederlandse koptekst wordt als onleesbare tekens weergegeven

De sleutels in de bronsJSON bevatten niet-ASCII-tekens. Zorg dat het bronbestand zelf in UTF-8 is gecodeerd. Bij JSON die uit Excel is gekopieerd kan de codering in GBK staan; zet deze eerst om naar UTF-8 voordat je plakt.

Ik wil de gegenereerde tabel in batch aanpassen (bijv. bedrijfslogo vervangen / kleur wijzigen)

Kopieer de HTML op het Code-tabblad aan de rechterkant en vervang stijlkenmerken in batch met sed, PostCSS of een eigen script. Veelgebruikte opdracht: sed -i '' 's/#f9fafb/#your-color/g' table.html.

De pagina loopt vast bij het genereren van een tabel met 1000+ rijen

De tool hanteert standaard een limiet van 1000 rijen. Je kunt maxRows op de werkbalk verhogen naar 10000, maar browsers presteren merkbaar slechter bij extreem grote DOM's (>1000 nodes). Aanbevolen: ① splits de tabel in pagina's van 50 rijen; ② gebruik IntersectionObserver voor virtueel scrollen; ③ gebruik voor dataweergave gespecialiseerde componentbibliotheken zoals TanStack Table of AG Grid.

Mijn geschiedenis is verdwenen

De geschiedenis wordt bewaard in de browser localStorage. Browserdata wissen, overschakelen naar incognito of een andere browser gebruiken zorgt ervoor dat de geschiedenis verdwijnt. De tool uploadt geen geschiedenis naar een server, dus synchronisatie tussen apparaten is niet mogelijk.

Na de rijlimiet is de oorspronkelijke data niet meer zichtbaar

Standaard is maxRows=1000; bij overschrijding wordt afgekapt. Als je brondata > 1000 rijen bevat en je alleen de eerste N rijen nodig hebt, kun je maxRows juist verlagen (bijvoorbeeld naar 100) voor een sneller resultaat. Voor de volledige dataset kun je beter direct een script in Python of Node.js gebruiken.

Woordenlijst

HTML-tabel (HTML Table)
Gestructureerd dataweergave-element volgens de W3C-standaard, opgebouwd uit semantische tags zoals table / thead / tbody / tr / th / td / caption. De code die deze tool genereert volgt strikt deze structuur.
JSON-array
Een verzameling objecten tussen vierkante haken [...]. De tool gebruikt elk object in de array als één tabelrij; bij een lege array wordt geen tabel gegenereerd (er verschijnt een melding).
JSON-object
Een verzameling sleutel-waardeparen tussen accolades {}. De tool gebruikt elke sleutel van het object als tabelkop en de waarde als celinhoud; een enkel object wordt automatisch als één-rij-tabel verpakt.
Nesting afvlakken (Flatten)
Geneste objecten recursief uitvouwen tot punt-gescheiden platte sleutels, bijvoorbeeld {user:{name:'A'}} → 'user.name'. De tool ondersteunt automatisch afvlakken tot 6 diepteniveaus, met configureerbaar scheidingsteken.
thead / tbody
De twee semantische delen van een HTML-tabel: thead omvat de koprij (th), tbody omvat de datarijen (td). De gegenereerde code maakt strikt onderscheid tussen deze twee.
Caption
De tag voor de tabeltitel, de eerste regel binnen de table. De tool ondersteunt aangepaste Caption-tekst; indien ingeschakeld verschijnt de opgegeven titel boven de tabel, wat zowel SEO als toegankelijkheid ten goede komt.
Zebrastrepen (Zebra Striping)
Visueel patroon waarbij oneven en even rijen een afwisselende achtergrondkleur krijgen, vaak #fff / #f9fafb. De tool schakelt dit in via de checkbox 'Zebrastrepen', wat de leesbaarheid van lange tabellen aanzienlijk verbetert.
Inline stijl (Inline Style)
CSS direct in het style-attribuut van een HTML-tag schrijven, in plaats van te verwijzen naar een externe stylesheet. De tool geeft standaard alle stijlen via inline style, zodat je de code kunt kopiëren zonder extra CSS-bestand.
CSS-klasse-haak
Onderscheidend vermogen van deze tool: elke class-tekenreeks (zoals Tailwind-klassen) in de `<table>`-tag injecteren, voor naadloze integratie met bestaande CSS-frameworks. Dit is een belangrijke upgrade ten opzichte van concurrenten.
iframe sandbox
De veilige sandboxmodus van de HTML-tag iframe, waarmee onder andere scriptuitvoering en form-verzending kunnen worden beperkt. De tool gebruikt een iframe met sandbox="allow-same-origin" om de gegenereerde HTML te previewen, zodat scripts niet onverwacht worden uitgevoerd.
typebewuste markering
Onderscheidend vermogen van deze tool: op basis van het JavaScript-type van de celwaarde (null / boolean / number / object / string) worden verschillende kleuren toegepast, zodat API-data overzichtelijker te debuggen is.
localStorage-geschiedenis
De door de browser geleverde lokale sleutel-waarde-opslag (capaciteit ca. 5-10 MB). De tool gebruikt localStorage om de laatste 200 invoeren permanent te bewaren, zodat ze na verversen of per ongeluk sluiten snel te herstellen zijn.
Responsieve wikkel (Responsive Wrapper)
Om de tabel een `<div style="overflow-x:auto;max-width:100%;">` plaatsen, zodat op smalle schermen automatisch een horizontale scrollbalk verschijnt. De tool zet dit standaard aan en het kan op de werkbalk worden uitgezet.
Debounce
Frontend-prestatieoptimalisatie: callbacks van hoogfrequente events (zoals typen) worden samengevoegd tot één uitvoering na de laatste trigger. De tool hanteert 500ms debounce om vertraging bij het parsen van grote bestanden te voorkomen.
W3C HTML5
De HTML-standaard van het World Wide Web Consortium (W3C). De door deze tool gegenereerde code voldoet aan de HTML5-specificatie en wordt correct weergegeven in alle moderne browsers.

Vergelijkingstabel van drie modi voor nestingsverwerking

De werkbalk biedt drie modi voor verschillende nestingscenario's; kies op basis van de complexiteit van de JSON-structuur:

ModusGedragVoorbeeldScenario
Afvlakken (Aanbevolen)Vouwt geneste objecten recursief uit tot punt-gescheiden sleutels (diepte ≤ 6)user.name / user.tags.0Geneste structuren van GitHub / Stripe / Notion API's; elke veld als afzonderlijke kolom
Eerste-niveau sleutelsAlleen eerste-niveau sleutels van het object; geneste objecten / arrays als één JSON-tekenreekskolomuser / tagsWisselende of te diepe nestingsstructuur (>6); alleen topvelden willen overzien
Als tekenreeksAlle waarden worden als tekenreeks behandeld; geneste objecten direct via JSON.stringifyuser (als volledige JSON)Debugscenario: oorspronkelijke JSON-structuur behouden voor visuele controle

Overzichtstabel van 14 configureerbare opties op de werkbalk

Alle 14 configureerbare opties op de werkbalk en hun visuele verschillen, voor het snel kiezen van de juiste combinatie:

OptieTypeVisueel effect / gedrag
includeIndexcheckboxVoegt een # -indexkolom toe aan de linkerkant van de tabel (oplopend vanaf 1)
stripedcheckboxOneven en even rijen krijgen afwisselende achtergrondkleuren (wit / #f9fafb)
borderedcheckbox1px grijze rand om elke cel + 2px accentlijn onder de kop
hovercheckboxBij hover wordt de hele rij lichtgrijs (#f9fafb) gemarkeerd
compactcheckboxCelpadding verkleind van 10px×14px naar 6px×8px
responsivecheckboxBuitenste container met overflow-x:auto, horizontale scroll op smalle schermen
flattenModeselectNestingverwerking: Afvlakken (Aanbevolen) / Eerste-niveau sleutels / Als tekenreeks
tableClasstextAangepaste CSS-klasse geïnjecteerd in <table class="...">
nullPlaceholdertextWeer te geven tekst voor null / undefined cellen (leeg = 'null')
maxRowsnumberMaximum aantal te genereren rijen (1-10000), invoer wordt afgekapt met melding
captiontextAangepaste titel die boven de tabel wordt getoond (caption-side: top)
indexHeadertextKoptekst van de indexkolom (standaard #)
flattenSeparatortextScheidingsteken voor sleutels in afvlakmodus (standaard ., kan ook _ / - zijn)
wrapperClasstextAangepaste CSS-klasse van de responsieve buitenste <div> (voor geavanceerde gebruikers)

Overzichtstabel regels voor typebewuste celmarkering

De tool past automatisch verschillende kleuren toe op basis van het JavaScript-type van de JSON-waarde, zodat je het datatype in één oogopslag herkent:

JS-typeDetectieToegepaste stijlVoorbeelduitvoer
null / undefinedval === null || val === undefinedcolor: #9ca3af; font-style: italic; toont tijdelijke aanduiding (aanpasbaar)<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 (afvlakmodus)type === 'object' + afvlakmodus haalt waarde via pad opGeneste objecten worden via het pad tot atomaire waarde gereduceerduser.name → 'Alice'
object / array (overige modi)typeof val === 'object'Na JSON.stringify escapen en afkappen op 50 tekens, paars en cursief + title toont volledige JSON bij hover<span style="color:#7c3aed;font-style:italic;" title="...">{"id":1…</span>
stringOverige gevallenStandaard tekstkleur #4b5563Jennifer Martinez

Privacy & Security

Alle bewerkingen van deze JSON naar HTML-tool, zoals JSON-parsing, nesting afvlakken, HTML-generatie, kopiëren en downloaden, vinden volledig lokaal in je browser plaats via JavaScript. Zowel de ingevoerde JSON-data als de gegenereerde HTML-code worden niet naar een server geüpload en ook niet vastgelegd, gecachet of in de cloud opgeslagen. JSON met gevoelige API-responses of interne bedrijfsvelden kan veilig worden gebruikt; bij het sluiten van de pagina wordt alle data gewist.

Authoritative References