JSON naar HTML-tabel
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
- 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
- Kies de nestingsverwerkingsmodus op de werkbalk (aanbevolen: 'Afvlakken'); geneste objecten worden automatisch uitgevouwen tot punt-gescheiden sleutels zoals `user.name`
- Klik op de knop 'Convert' (of druk op Enter) om de conversie te starten; tijdens het typen is er 500ms debounce-beveiliging
- Bekijk de HTML-tabelcode met syntaxismarkering op het Code-tabblad aan de rechterkant, en de realtime iframe-rendering op het Preview-tabblad
- 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
- 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
javascriptDe 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)
pythonBij 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
bashOperationscenario: 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.htmlVeelgestelde 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:
| Modus | Gedrag | Voorbeeld | Scenario |
|---|---|---|---|
Afvlakken (Aanbevolen) | Vouwt geneste objecten recursief uit tot punt-gescheiden sleutels (diepte ≤ 6) | user.name / user.tags.0 | Geneste structuren van GitHub / Stripe / Notion API's; elke veld als afzonderlijke kolom |
Eerste-niveau sleutels | Alleen eerste-niveau sleutels van het object; geneste objecten / arrays als één JSON-tekenreekskolom | user / tags | Wisselende of te diepe nestingsstructuur (>6); alleen topvelden willen overzien |
Als tekenreeks | Alle waarden worden als tekenreeks behandeld; geneste objecten direct via JSON.stringify | user (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:
| Optie | Type | Visueel effect / gedrag |
|---|---|---|
includeIndex | checkbox | Voegt een # -indexkolom toe aan de linkerkant van de tabel (oplopend vanaf 1) |
striped | checkbox | Oneven en even rijen krijgen afwisselende achtergrondkleuren (wit / #f9fafb) |
bordered | checkbox | 1px grijze rand om elke cel + 2px accentlijn onder de kop |
hover | checkbox | Bij hover wordt de hele rij lichtgrijs (#f9fafb) gemarkeerd |
compact | checkbox | Celpadding verkleind van 10px×14px naar 6px×8px |
responsive | checkbox | Buitenste container met overflow-x:auto, horizontale scroll op smalle schermen |
flattenMode | select | Nestingverwerking: Afvlakken (Aanbevolen) / Eerste-niveau sleutels / Als tekenreeks |
tableClass | text | Aangepaste CSS-klasse geïnjecteerd in <table class="..."> |
nullPlaceholder | text | Weer te geven tekst voor null / undefined cellen (leeg = 'null') |
maxRows | number | Maximum aantal te genereren rijen (1-10000), invoer wordt afgekapt met melding |
caption | text | Aangepaste titel die boven de tabel wordt getoond (caption-side: top) |
indexHeader | text | Koptekst van de indexkolom (standaard #) |
flattenSeparator | text | Scheidingsteken voor sleutels in afvlakmodus (standaard ., kan ook _ / - zijn) |
wrapperClass | text | Aangepaste 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-type | Detectie | Toegepaste stijl | Voorbeelduitvoer |
|---|---|---|---|
null / undefined | val === null || val === undefined | color: #9ca3af; font-style: italic; toont tijdelijke aanduiding (aanpasbaar) | <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 (afvlakmodus) | type === 'object' + afvlakmodus haalt waarde via pad op | Geneste objecten worden via het pad tot atomaire waarde gereduceerd | user.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> |
string | Overige gevallen | Standaard tekstkleur #4b5563 | Jennifer 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
- JSON Compress
- CSV naar JSON Converter
- JSON naar CSV
- JSON Diff
- JSON Escape / Unescape
- JSON afvlakken
- JSON Formatter
- JSON-generator
- JSONPath Online Query
- JSON samenvoegen
- JSON repareren
- JSON Schema Validator
- JSON sorteren
- JSON Stringify
- JSON naar HTML-tabel
- JSON naar Java
- JSON to Markdown
- JSON naar SQL
- JSON naar TOML
- JSON naar TypeScript
- XML naar JSON
- JSON naar XML
- YAML naar JSON
- JSON naar YAML
- JSON naar Python
- JSON naar Go
- JSON naar Rust
- JSON naar Swift
- JSON naar C#
- JSON naar C++
- JSON naar PHP