JSON in HTML
Strumento gratuito online per convertire JSON in HTML, che trasforma con un clic array JSON o oggetti annidati in codice di tabelle HTML standard pronto da incorporare nelle pagine web. Supporta appiattimento annidato (user.name), classe CSS personalizzata, scorrimento orizzontale responsive, 6 opzioni di stile visivo, segnaposto per null, protezione per limite di righe, anteprima in tempo reale con doppia tab Codice/iframe, evidenziazione per tipo e cronologia locale.
Raccomandazioni correlate
Informazioni su JSON in HTML e tabelle HTML
Lo strumento JSON in HTML (JSON to HTML Converter) è un'utilità che converte automaticamente le strutture dati JSON in codice di tabelle HTML standard. Libera gli sviluppatori dal lavoro ripetitivo di scrivere manualmente i template `<table>` / `<tr>` / `<td>`, ed è particolarmente adatto per scenari in cui è necessario visualizzare rapidamente come tabelle web dati annidati restituiti dalle API, file di configurazione o qualsiasi struttura JSON.
La tabella HTML (HTML Table) è l'elemento W3C standard per la visualizzazione di dati strutturati, composto da contenitore `<table>`, `<thead>` per l'intestazione, `<tbody>` per il corpo, `<tr>` per le righe, `<th>` per le celle di intestazione, `<td>` per le celle dati, `<caption>` per il titolo e altri tag. Il codice generato da questo strumento segue rigorosamente questa struttura semantica, facilitando la successiva indicizzazione SEO e l'accessibilità (riconoscibile dagli screen reader).
Gli strumenti JSON in HTML sul mercato si dividono in tre categorie: la prima genera solo stringhe di codice HTML (come tooltt.com, codebeautify.org), enfatizzando l'uso «copia e incolla»; la seconda offre anche un'anteprima visuale (come questo strumento, jsontables.com, TableConvert), enfatizzando il WYSIWYG; la terza supporta l'espansione annidata + iniezione di classi Tailwind (posizionamento differenziante di questo strumento), ideale per gli ingegneri che devono incorporare JSON in progetti frontend moderni.
L'«appiattimento annidato» di questo strumento è il punto di forza differenziante rispetto alla maggior parte dei concorrenti: gli strumenti tradizionali, incontrando `{user:{name:'Alice'}}`, lo visualizzano direttamente come stringa `{"name":"Alice"}`, mentre questo strumento lo espande ricorsivamente in una colonna `user.name` (profondità massima di 6 livelli, separatore personalizzabile). Questo significa che puoi gestire direttamente dati aziendali reali con strutture annidate complesse provenienti da GitHub API, Stripe API, Notion API, senza bisogno di pre-appiattire con jq o lodash.
Un altro punto di forza differenziante è l'«hook per classe CSS personalizzata»: lo strumento non genera solo stili inline, ma consente anche di iniettare qualsiasi stringa di classi sul tag `<table>`. Questo permette agli utenti di framework CSS diffusi come Tailwind, Bootstrap, Bulma, DaisyUI di riutilizzare direttamente l'HTML generato da questo strumento, ottenendo immediatamente uno stile coerente con il progetto, senza dover modificare manualmente il CSS.
Casi d'uso
- Sviluppo frontend: renderizza rapidamente i dati JSON restituiti dalle API in tabelle HTML da incorporare in dashboard di amministrazione o pagine di documentazione
- Progetti Tailwind / Bootstrap: inserisci direttamente le classi Tailwind o Bootstrap nella casella «Nome classe tabella» per un'integrazione perfetta con i sistemi di stile esistenti
- Pagine web responsive: il wrapper con scorrimento orizzontale è attivo per impostazione predefinita, le tabelle sui dispositivi mobili non rompono il layout
- Visualizzazione dati: incolla tabelle con stile in piattaforme che supportano l'incorporamento HTML come blog, documentazione, Confluence, Notion
- Generazione di report: converti rapidamente i dati JSON esportati dal backend in report email HTML da inviare ai reparti aziendali
- Prototipazione frontend: usa dati reali in fase di design per visualizzare in anteprima lo stile delle tabelle, facilitando l'allineamento con prodotto e design prima della consegna
- Sistemi CMS: crea frammenti di tabelle HTML statiche per CMS come WordPress o Drupal, evitando la complessità dei motori di template
- Test e debug: usa JSON.stringify nella console del browser e incolla qui per visualizzare rapidamente la struttura bidimensionale di dati annidati complessi
- Template email: incorpora il codice HTML delle tabelle nelle email in formato HTML (nota: è necessario testare la compatibilità con client come Outlook)
- Documentazione API: incorpora tabelle HTML in Markdown, Swagger o Redoc come alternativa agli esempi JSON predefiniti
- Contesto didattico: converti i compiti JSON annidati degli studenti in tabelle uniformi per correzione e presentazione nei corsi di strutture dati
- Report di pulizia dati: converti in tabelle JSON annidati esportati dal database tramite la modalità di appiattimento per facilitare il confronto dei campi
Come utilizzare
- Incolla un array JSON (consigliato) o un singolo oggetto nell'editor a sinistra, oppure fai clic su «Sample» per caricare 3 esempi di prodotti, oppure fai clic su «Upload» per caricare un file .json / .txt
- Seleziona la modalità di gestione annidamento nella barra degli strumenti (consigliata «Appiattisci»), gli oggetti annidati verranno espansi automaticamente in chiavi con notazione a punti come `user.name`
- Fai clic sul pulsante «Convert» (oppure premi direttamente Invio) per attivare la conversione; l'input è protetto da un debounce di 500 ms
- Visualizza il codice della tabella HTML con evidenziazione della sintassi nella tab Code a destra e il rendering reale in tempo reale nella tab Preview tramite iframe
- Spunta le opzioni di stile nella barra degli strumenti (righe alternate, bordi, hover, compatto, responsive), inserisci una classe personalizzata per la tabella, imposta il segnaposto per null, l'anteprima si aggiorna automaticamente in tempo reale
- Quando sei soddisfatto, fai clic su «Copy» per copiare il codice HTML e incollarlo nella pagina web, oppure su «Download» per scaricare un file table.html; per ripristinare, fai clic su Reset
Funzionalità
- Appiattimento automatico di oggetti annidati: espansione ricorsiva di `{user:{name,age}}` in chiavi separate da punti come `user.name`, `user.age` (separatore configurabile), senza scrivere script di appiattimento
- Tre modalità di gestione annidamento: Appiattisci (consigliata, profondità 6 livelli automatica) / Chiavi di primo livello (oggetto annidato come singola colonna) / Come stringa (oggetto annidato convertito in stringa JSON di anteprima)
- Hook per classe CSS personalizzata: inietta una stringa di classi personalizzate su `<table>` e opzionalmente sul `<div>` esterno, integrazione perfetta con sistemi di stile come Tailwind, Bootstrap o Bulma
- Scorrimento orizzontale responsive: contenitore esterno predefinito con `overflow-x:auto`, le barre di scorrimento orizzontali appaiono automaticamente su schermi stretti senza alterare il layout della pagina
- 6 opzioni di stile visivo: righe alternate, bordi, evidenziazione al passaggio del mouse, modalità compatta, indice prima colonna (#), titolo Caption della tabella, caselle di controllo della barra degli strumenti attive immediatamente
- Doppia tab di anteprima Codice e iframe: la tab Code mostra il codice sorgente HTML con evidenziazione della sintassi, la tab Preview esegue il rendering reale della tabella in un iframe sandbox
- Evidenziazione per tipo: null visualizzato in grigio corsivo (testo segnaposto personalizzabile), booleani in verde/rosso per true/false, numeri in blu, oggetti annidati visualizzabili in hover per il JSON completo
- Protezione per limite di righe: limite predefinito di 1000 righe (regolabile 1-10000), troncamento automatico con notifica nell'interfaccia «troncato» per evitare rallentamenti del browser su DOM di grandi dimensioni
- Feedback statistico di generazione: il pannello destro mostra in tempo reale «righe generate X × colonne Y» + badge di troncamento, per comprendere immediatamente la scala dei dati durante il debug di JSON lunghi
- Copia e download con un clic: in modalità Code è possibile copiare il codice HTML negli appunti con un clic o scaricare un file table.html pronto per l'uso sul sito
- Dati di esempio e caricamento file: 3 esempi di prodotti predefiniti (Laptop / Mouse / Sedia da scrivania) caricabili con un clic, supporto per trascinamento o caricamento di file .json / .txt
- Ripristino opzioni con un clic: il pulsante Reset sulla destra della barra degli strumenti ripristina tutte le 14 opzioni di configurazione ai valori predefiniti, ideale per sperimentare rapidamente
- Cronologia locale: persistenza basata su localStorage delle ultime 200 voci di input, ripristino rapido dopo aggiornamenti o chiusure accidentali della pagina
- Esecuzione completamente locale nel browser: tutte le operazioni di analisi JSON, generazione HTML, copia e download vengono eseguite nel tuo browser, nessun dato viene inviato a server
Esempi di codice
JavaScript: appiattimento annidato + integrazione classi Tailwind
javascriptL'uso più comune nello sviluppo reale: dopo aver chiamato l'API GitHub, gli oggetti annidati vengono appiattiti in chiavi con notazione a punti, quindi integrati nel progetto con classi Tailwind.
// 1) Call the GitHub API to fetch the user list
async function fetchUsers() {
const res = await fetch('https://api.github.com/users?per_page=10');
return await res.json();
}
// 2) Nested flatten function (equivalent to this tool's flatten logic)
function flattenObject(obj, prefix = '', sep = '.', result = {}) {
for (const [k, v] of Object.entries(obj || {})) {
const key = prefix ? `${prefix}${sep}${k}` : k;
if (v && typeof v === 'object' && !Array.isArray(v)) {
flattenObject(v, key, sep, result);
} else {
result[key] = v;
}
}
return result;
}
// 3) Convert the flattened data into an HTML table, injecting Tailwind classes
function generateHtmlTable(rows) {
const flat = rows.map(r => flattenObject(r));
const cols = [...new Set(flat.flatMap(r => Object.keys(r)))];
const thead = cols.map(c => `<th class="px-4 py-2 text-left">${c}</th>`).join('');
const tbody = flat.map(r =>
`<tr class="border-b hover:bg-gray-50">${cols.map(c => `<td class="px-4 py-2">${r[c] ?? 'N/A'}</td>`).join('')}</tr>`
).join('');
return `<table class="min-w-full text-sm">
<thead class="bg-gray-100"><tr>${thead}</tr></thead>
<tbody>${tbody}</tbody>
</table>`;
}
// 4) Inject into the page
const users = await fetchUsers();
const html = generateHtmlTable(users);
document.getElementById('table-container').innerHTML = html;
console.log('Generated ' + users.length + ' rows, column count ' + (Object.keys(flattenObject(users[0])).length));Python: JSON annidato in tabella HTML in Flask (nessuna dipendenza frontend)
pythonDurante il rendering dei template backend, è possibile utilizzare le librerie integrate di Python per generare la stessa tabella HTML, con supporto per appiattimento annidato e iniezione di classi.
from flask import Flask, jsonify, render_template_string
import json
app = Flask(__name__)
TEMPLATE = """
<!doctype html><html><body>
<div class="overflow-x-auto">{{ table_html | safe }}</div>
</body></html>
"""
def flatten(obj, prefix='', sep='.', result=None):
"""Recursively flatten nested objects"""
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>No data</p>"
# Row truncation
truncated = False
if len(data) > max_rows:
data = data[:max_rows]
truncated = True
# Flatten each row
flat_rows = [flatten(row) for row in data]
# Collect all column names (using a set to deduplicate, preserving insertion order)
columns = []
for row in flat_rows:
for k in row.keys():
if k not in columns:
columns.append(k)
# Generate header
thead = "".join(f'<th class="px-4 py-2 text-left bg-gray-100">{c}</th>' for c in columns)
# Generate table rows
rows = []
for i, row in enumerate(flat_rows):
bg = "bg-gray-50" if i % 2 == 1 else ""
tds = "".join(
f'<td class="px-4 py-2 {bg}">{("N/A" if row.get(c) is None else row.get(c, ""))}</td>'
for c in columns
)
rows.append(f'<tr class="hover:bg-blue-50">{tds}</tr>')
html = f'<table class="{table_class}"><thead><tr>{thead}</tr></thead><tbody>{"".join(rows)}</tbody></table>'
if responsive:
html = f'<div class="overflow-x-auto">{html}</div>'
if truncated:
html = f'<p class="text-amber-600 text-sm">Data truncated to the first {max_rows} rows</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)Riga di comando: appiattimento con jq + generazione di report HTML statici con questo strumento
bashScenario operativo: aggrega i log JSON nidificati e appiattiscili con jq, quindi incollali in questo strumento per generare un report HTML con classi Tailwind.
# 1) Use jq to aggregate and flatten nested logs into dot-notation keys
cat app.log | jq -s '
group_by(.response.status_code) |
map({
status: .[0].response.status_code,
count: length,
"first_request.method": .[0].request.method,
"last_request.url": .[-1].request.url,
"first_seen": min_by(.timestamp).timestamp,
"last_seen": max_by(.timestamp).timestamp
})
' > stats.json
# 2) Paste stats.json into this tool
# Select «Appiattisci (consigliata)» in the toolbar
# Enable «Zebra + Responsive + Bordered»
# In the table class name input: min-w-full text-sm border-collapse
# Set null placeholder: - (missing fields will display -)
# Set Caption: 2026-07 Production error log statistics
# Click Convert and download table.html
# 3) Upload to S3 / OSS static website
aws s3 cp table.html s3://my-bucket/reports/2026-07.html --acl public-read
# Or embed in Confluence / Notion / VuePress docs
sed -i '' 's/min-w-full/min-w-full shadow-md/g' table.html
# Or send as HTML email
mutt -e "set content_type=text/html" -s "2026-07 Error log" your@email.com < table.htmlDomande frequenti
Come si trasformano i dati JSON in una tabella HTML?
Incolla un array JSON (dove ogni elemento è un oggetto) nella casella di input a sinistra, fai clic sul pulsante «Convert» nella barra degli strumenti. La tab Code a destra mostrerà il codice della tabella HTML con evidenziazione della sintassi, passa alla tab Preview per vedere il rendering in tempo reale nell'iframe, quindi fai clic su «Copia» per incollare il risultato in qualsiasi pagina HTML.
È possibile convertire oggetti JSON annidati in una tabella HTML?
Sì. Questo strumento include una modalità di appiattimento annidato che espande ricorsivamente `{user:{name:'Alice',age:30}}` in due colonne `user.name` e `user.age`, con profondità massima di 6 livelli. Nella barra degli strumenti è inoltre possibile passare alla modalità «Chiavi di primo livello» (mantiene l'oggetto annidato come colonna di stringa JSON) o «Come stringa» (lo tratta interamente come stringa).
È possibile modificare il separatore delle chiavi dopo l'appiattimento?
Il separatore predefinito è `.` (come in `user.name`), in linea con le convenzioni di JavaScript, MongoDB, Lodash e altri strumenti diffusi. Se hai bisogno di `user_name` o `user/name`, puoi personalizzarlo nella casella «Separatore» della barra degli strumenti (visibile agli utenti avanzati).
È possibile personalizzare lo stile della tabella HTML generata?
Sono disponibili tre metodi di personalizzazione dello stile: ① le 6 opzioni visive della barra degli strumenti (righe alternate, bordi, hover, compatto, indice, Caption) attive immediatamente; ② inserisci una classe personalizzata nella casella «Nome classe tabella» (ad esempio le classi Tailwind `min-w-full border-collapse`), che verrà iniettata in `<table class="...">`; ③ modifica direttamente l'HTML generato prima dell'uso.
Supporta Tailwind e Bootstrap?
Sì. Inserisci le classi Tailwind (come `min-w-full border-collapse text-sm`) o le classi Bootstrap (come `table table-striped table-hover table-bordered`) nella casella «Nome classe tabella»: lo strumento inietterà queste classi nel tag `<table>`. Nota: gli stili inline generati dallo strumento hanno la massima priorità e sovrascrivono alcune classi Tailwind (colori di sfondo, padding); si consiglia di disattivare le opzioni corrispondenti della barra degli strumenti (come le righe alternate) prima di usare Tailwind.
Qual è la differenza tra la tab Code e la tab Preview?
La tab Code mostra il codice sorgente HTML con evidenziazione della sintassi, ideale per copiare e modificare; la tab Preview esegue il rendering reale della tabella in un iframe sandbox, con risultato WYSIWYG. Il contenuto delle due tab è identico, cambia solo la modalità di visualizzazione, consentendoti di passare rapidamente tra «leggi il codice» e «vedi il risultato».
L'HTML generato supporta il design responsive per dispositivi mobili?
Sì. Lo strumento attiva per impostazione predefinita l'opzione «Wrapper responsive», che avvolge la `<table>` in un contenitore `<div style="overflow-x:auto;max-width:100%;">`. Quando la larghezza dello schermo è inferiore alla larghezza della tabella, il contenitore mostra automaticamente una barra di scorrimento orizzontale, evitando che la tabella rompa il layout della pagina. Questa opzione può essere disattivata dalla barra degli strumenti.
Come vengono visualizzati null, booleani e numeri nelle celle?
Lo strumento applica un'evidenziazione basata sul tipo: null viene mostrato in grigio corsivo (il testo segnaposto può essere personalizzato come `N/A`, `-`, `vuoto` ecc.); il booleano true viene mostrato in verde, false in rosso; i numeri in blu; le stringhe normali vengono visualizzate così come sono; gli oggetti annidati in modalità appiattimento vengono letti per percorso, nelle altre modalità vengono convertiti in stringa JSON e troncati a 50 caratteri.
Il codice HTML generato può essere utilizzato direttamente su un sito web?
Sì. Il codice generato è una struttura di tabella HTML5 standard W3C (`<table>` / `<thead>` / `<tbody>` / `<caption>`), con CSS emesso tramite stili inline, pronto per essere incollato in qualsiasi pagina HTML e utilizzato in modo autonomo, senza dipendere da CSS o JS esterni. È anche possibile scaricarlo come file table.html.
Qual è la differenza tra JSON in HTML e JSON in CSV?
La tabella HTML è un formato visuale con stile, ideale da incorporare direttamente nelle pagine web; CSV è un formato di dati in testo puro, ideale per l'importazione in Excel, Pandas, database per l'analisi dei dati. Entrambi vengono generati dalla stessa origine JSON: ti consigliamo di usare prima questo strumento per visualizzare in anteprima il layout nella pagina web, quindi di usare lo strumento JSON in CSV per esportare la versione dati.
Come si modifica il testo delle intestazioni?
Lo strumento utilizza automaticamente le chiavi del primo livello dell'oggetto JSON come contenuto delle intestazioni `<th>` (in modalità appiattimento usa il percorso completo separato da punti, come `user.name`). Se desideri intestazioni diverse (ad esempio in italiano), hai tre opzioni: ① modifica direttamente i nomi delle chiavi nel JSON sorgente; ② dopo la generazione, modifica manualmente il contenuto di `<th>...</th>` nella tab Code a destra; ③ usa sed per la sostituzione in batch sull'HTML generato.
Il table.html scaricato appare vuoto quando lo apro nel browser?
Il file table.html scaricato contiene solo la struttura del tag `<table>` (eventualmente con il `<div>` responsive esterno), senza lo scheletro HTML completo (`<html>` / `<head>` / `<body>`), poiché è progettato come frammento di codice da incorporare nelle pagine web esistenti. Puoi aggiungere manualmente lo scheletro HTML completo con uno strumento di formattazione HTML, oppure incollare il frammento direttamente nella posizione corrispondente del tuo progetto.
La pagina diventa lenta con tabelle di oltre 1000 righe?
Lo strumento imposta per impostazione predefinita un limite di 1000 righe, con un avviso «troncato» quando viene superato. Se hai davvero bisogno di generare una tabella di 5000 righe, puoi aumentare il valore «Numero massimo di righe» nella barra degli strumenti fino a 10000, ma ti consigliamo: ① suddividere in tabelle paginate (50 righe per pagina); ② implementare lo scorrimento virtuale con IntersectionObserver; ③ oppure usare librerie di componenti dedicate come TanStack Table o AG Grid per scenari di visualizzazione dati.
I dati vengono caricati su un server? La privacy è garantita?
Esecuzione completamente locale nel browser. Tutte le operazioni di analisi JSON, generazione HTML, copia e download vengono eseguite nel tuo browser tramite JavaScript, anche la lettura dei file avviene solo tramite FileReader locale, senza invio a nessun server. JSON contenenti risposte API sensibili o campi aziendali riservati possono essere utilizzati in tutta sicurezza: chiudendo la pagina tutti i dati vengono eliminati.
Risoluzione dei problemi
Messaggio «Inserisci dati JSON» o errore simile
La casella di input a sinistra è vuota o contiene solo spazi. Assicurati di aver incollato contenuto JSON valido, oppure fai clic su «Sample» per caricare i dati di esempio, oppure su «Upload» per selezionare un file .json / .txt.
Messaggio «Unexpected token ... in JSON at position N»
Formato JSON non valido. Cause comuni: ① virgola finale in eccesso (ad esempio [{},{},]); ② utilizzo di apici singoli anziché doppi; ③ sintassi di oggetto JS (come {key: value}) anziché JSON ({"key": "value"}). È possibile utilizzare uno strumento di formattazione JSON per la convalida e la correzione preliminare.
La tabella generata contiene solo l'intestazione senza righe di dati
I dati JSON sono un array vuoto [] o un oggetto vuoto {}. Per un array vuoto, lo strumento restituisce il commento «<!-- No valid objects found -->». Aggiungi almeno un oggetto dati nel JSON sorgente.
In modalità appiattimento i nomi delle colonne sono troppo lunghi (ad esempio user.profile.address.city.country.code)
Quando i livelli di annidamento sono troppo profondi, si consiglia di: ① passare alla modalità «Chiavi di primo livello» (prende solo i campi di primo livello, gli oggetti annidati come intera colonna JSON); ② modificare la struttura del JSON sorgente per ridurre l'annidamento non necessario; ③ utilizzare il pulsante Reset della barra degli strumenti per ripristinare la configurazione predefinita di appiattimento.
Gli stili non vengono applicati dopo l'iniezione delle classi Tailwind
Lo strumento emette per impostazione predefinita stili inline (come padding, background) che sovrascrivono le classi utility omonime di Tailwind. Si consiglia di: ① disattivare le opzioni corrispondenti della barra degli strumenti (come le righe alternate) prima di usare Tailwind per controllare il colore di sfondo; ② oppure rimuovere gli attributi di stile inline dall'HTML generato con PostCSS.
L'altezza della tabella viene compressa dopo l'applicazione del wrapper responsive
Il «Wrapper responsive» fa sì che l'altezza del div esterno segua la tabella per impostazione predefinita. Se il tuo contenitore padre è in layout flex e non è stata specificata un'altezza, la tabella figlio potrebbe essere compressa. Aggiungi min-h-0 al contenitore padre o imposta l'altezza della tabella.
Il table.html scaricato appare vuoto nel browser
Il file scaricato contiene solo il frammento `<table>` (eventualmente con il `<div>` responsive esterno), senza lo scheletro HTML completo (<!doctype html> / <html> / <head> / <body>). Questa scelta è pensata per facilitare l'incorporamento nelle pagine web esistenti. Puoi aggiungere lo scheletro completo con uno strumento di formattazione HTML, oppure incollare il frammento direttamente nella posizione corrispondente del tuo progetto.
Le intestazioni in italiano mostrano caratteri illeggibili
Le chiavi nel JSON sorgente contengono testo italiano, assicurati che il file sorgente sia codificato in UTF-8. Se il JSON è stato copiato da Excel, potrebbe essere stato convertito in GBK; convertilo prima in UTF-8 con uno strumento di conversione di codifica, quindi incollalo.
Vuoi modificare in batch la tabella generata (ad esempio sostituire il logo aziendale o cambiare i colori)
Dopo la generazione, copia l'HTML dalla tabella Code a destra e utilizza sed, PostCSS o uno script personalizzato per sostituire in batch gli attributi di stile. Comando comune: sed -i '' 's/#f9fafb/#your-color/g' table.html.
La pagina diventa lenta con tabelle di oltre 1000 righe
Lo strumento imposta per impostazione predefinita un limite di 1000 righe. È possibile aumentare maxRows nella barra degli strumenti fino a 10000, ma le prestazioni di rendering del browser calano notevolmente su DOM molto grandi (>1000 nodi). Si consiglia di: ① suddividere in tabelle paginate (50 righe per pagina); ② implementare lo scorrimento virtuale con IntersectionObserver; ③ oppure utilizzare librerie di componenti dedicate come TanStack Table o AG Grid per scenari di visualizzazione dati.
La cronologia è andata persa
La cronologia è archiviata in localStorage del browser: cancellare i dati del browser, passare alla modalità di navigazione in incognito o utilizzare un altro browser ne causa la scomparsa. Questo strumento non carica la cronologia su alcun server, quindi non è possibile sincronizzarla tra dispositivi.
Dopo il limite di righe i dati originali non sono visibili
maxRows predefinito è 1000, i dati in eccesso vengono troncati. Se i tuoi dati sorgente hanno > 1000 righe ma hai bisogno solo delle prime N come anteprima, ridurre maxRows (ad esempio a 100) può anzi restituire il risultato più velocemente. Per i dati completi, si consiglia di elaborarli direttamente con script Python Faker o Node.js.
Glossario
- Tabella HTML (HTML Table)
- Elemento W3C standard per la visualizzazione di dati strutturati, composto da tag semantici come table / thead / tbody / tr / th / td / caption. Il codice generato da questo strumento segue rigorosamente questa struttura.
- Array JSON
- Raccolta di oggetti racchiusa tra parentesi quadre [...]. Questo strumento considera ogni oggetto dell'array come una riga della tabella; se l'array è vuoto, la tabella non viene generata (viene mostrato un messaggio).
- Oggetto JSON
- Raccolta di coppie chiave-valore racchiuse tra parentesi graffe {}. Questo strumento utilizza ogni chiave dell'oggetto come intestazione e il valore come cella; un singolo oggetto viene automaticamente racchiuso in una tabella a riga singola.
- Appiattimento annidato (Flatten)
- Espansione ricorsiva di un oggetto annidato in chiavi piatte separate da punti, ad esempio {user:{name:'A'}} → 'user.name'. Questo strumento supporta l'appiattimento automatico fino a 6 livelli di profondità, con separatore configurabile.
- thead / tbody
- Due partizioni semantiche della tabella HTML: thead racchiude la riga di intestazione (th), tbody racchiude le righe di dati (td). Il codice generato da questo strumento distingue rigorosamente queste due parti.
- Caption
- Tag del titolo della tabella, situato nella prima riga interna di table. Questo strumento supporta un testo Caption personalizzato: se attivato, mostra il titolo specificato sopra la tabella, utile sia per la SEO che per l'accessibilità.
- Righe alterne (Zebra Striping)
- Schema visivo in cui righe pari e dispari della tabella alternano colori di sfondo diversi, solitamente combinazioni #fff / #f9fafb. Questo strumento lo attiva tramite la casella «Righe alternate», migliorando significativamente la leggibilità delle tabelle lunghe.
- Stile inline (Inline Style)
- CSS scritto direttamente tramite l'attributo style del tag HTML, anziché fare riferimento a un foglio di stile esterno. Per impostazione predefinita, questo strumento emette tutti gli stili tramite stili inline, pronti per l'uso senza file CSS aggiuntivi.
- Hook per classe CSS
- Capacità differenziante di questo strumento: iniettare qualsiasi stringa di classi (come classi Tailwind) sul tag `<table>`, per un'integrazione perfetta con i framework CSS esistenti. È un aggiornamento chiave rispetto ai concorrenti.
- iframe sandbox
- Modalità sandbox di sicurezza del tag HTML iframe, che limita l'esecuzione di script, l'invio di moduli ecc. Questo strumento utilizza un iframe con sandbox="allow-same-origin" per visualizzare in anteprima l'HTML generato, evitando esecuzioni accidentali di script.
- Evidenziazione in base al tipo (type-aware)
- Capacità differenziante di questo strumento: applica colori diversi in base al tipo JS del valore della cella (null / boolean / number / object / string), rendendo il debug dei dati API più intuitivo.
- Cronologia localStorage
- Archiviazione locale chiave-valore fornita dal browser (capacità circa 5-10 MB). Questo strumento utilizza localStorage per salvare in modo persistente le ultime 200 voci di input, consentendo un ripristino rapido dopo aggiornamenti o chiusure accidentali della pagina.
- Wrapper responsive (Responsive Wrapper)
- Aggiunta di `<div style="overflow-x:auto;max-width:100%;">` attorno alla tabella, in modo che la tabella mostri automaticamente una barra di scorrimento orizzontale su schermi stretti. Questo strumento lo attiva per impostazione predefinita, disattivabile dalla barra degli strumenti.
- Debounce
- Tecnica di ottimizzazione delle prestazioni frontend: unisce più invocazioni di callback di eventi ad alta frequenza (come l'input) in un'unica esecuzione dopo l'ultima attivazione. Questo strumento imposta un debounce di 500 ms per evitare rallentamenti nell'analisi di file di grandi dimensioni.
- W3C HTML5
- Specifica standard HTML definita dal World Wide Web Consortium (W3C). Il codice generato da questo strumento è conforme alla specifica HTML5 e viene renderizzato correttamente in tutti i browser moderni.
Confronto tra le tre modalità di gestione degli oggetti annidati
La barra degli strumenti offre tre modalità per gestire diversi scenari di annidamento: scegli in base alla complessità della struttura JSON.
| Modalità | Comportamento | Esempio | Scenario |
|---|---|---|---|
Appiattisci (consigliata) | Espansione ricorsiva di oggetti annidati in chiavi separate da punti (profondità ≤ 6) | user.name / user.tags.0 | Strutture annidate di API reali come GitHub / Stripe / Notion; quando si desidera che ogni campo sia una colonna separata |
Chiavi di primo livello | Vengono prese solo le chiavi del primo livello; oggetti/array annidati come singola colonna di stringa JSON | user / tags | Strutture annidate non fisse o troppo profonde (>6 livelli); quando interessano solo i campi di primo livello |
Come stringa | Tutti i valori trattati forzatamente come stringhe; gli oggetti annidati vengono JSON.stringify direttamente | user (come intero blocco JSON) | Scenario di debug: quando si desidera conservare la struttura JSON originale per l'ispezione visiva |
Tabella rapida delle 14 opzioni configurabili della barra degli strumenti
Tutte le 14 opzioni configurabili della barra degli strumenti e le relative differenze visive, per scegliere rapidamente le combinazioni:
| Opzione | Tipo | Effetto visivo / comportamento |
|---|---|---|
includeIndex | checkbox | Aggiunge una colonna di numerazione # all'estrema sinistra della tabella (incrementale da 1) |
striped | checkbox | Sfondo alternato per righe pari/dispari (bianco / #f9fafb) |
bordered | checkbox | Bordo grigio 1px attorno alle celle + linea di enfasi 2px sotto l'intestazione |
hover | checkbox | Al passaggio del mouse, l'intera riga diventa sfondo grigio chiaro #f9fafb |
compact | checkbox | Riduce il padding delle celle da 10px×14px a 6px×8px |
responsive | checkbox | Contenitore esterno con overflow-x:auto, scorrimento orizzontale su schermi stretti |
flattenMode | select | Gestione annidamento: Appiattisci (consigliata) / Chiavi di primo livello / Come stringa |
tableClass | text | Classe CSS personalizzata iniettata in <table class="..."> |
nullPlaceholder | text | Testo visualizzato per le celle null / undefined (vuoto mostra 'null') |
maxRows | number | Numero massimo di righe generate (1-10000), troncamento automatico con notifica se superato |
caption | text | Testo del titolo personalizzato visualizzato sopra la tabella (caption-side: top) |
indexHeader | text | Testo dell'intestazione della colonna indice (predefinito #) |
flattenSeparator | text | Separatore delle chiavi in modalità appiattimento (predefinito ., modificabile in _ / - ecc.) |
wrapperClass | text | Classe CSS personalizzata per il <div> esterno responsive (utenti avanzati) |
Tabella rapida delle regole di evidenziazione basata sul tipo di cella
Lo strumento applica automaticamente colori diversi in base al tipo JavaScript del valore JSON, per identificare rapidamente il tipo di dato:
| Tipo JS | Metodo di rilevamento | Stile applicato | Esempio di output |
|---|---|---|---|
null / undefined | val === null || val === undefined | color: #9ca3af; font-style: italic; mostra il testo segnaposto (personalizzabile) | <span style="color:#9ca3af;font-style:italic;">N/D</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 (modalità appiattimento) | type === 'object' + accesso per percorso in modalità appiattimento | Gli oggetti annidati vengono letti per percorso come valori atomici | user.name → 'Alice' |
object / array (altre modalità) | typeof val === 'object' | Dopo JSON.stringify, escaping e troncamento a 50 caratteri, corsivo viola + title in hover per JSON completo | <span style="color:#7c3aed;font-style:italic;" title="...">{"id":1…</span> |
string | altri casi | Colore testo predefinito #4b5563 | Jennifer Martinez |
Privacy & Security
Tutte le operazioni di analisi JSON, appiattimento annidato, generazione HTML, copia e download di questo strumento JSON in HTML vengono eseguite completamente nel tuo browser tramite JavaScript, in locale. I dati JSON inseriti e il codice HTML generato non vengono mai caricati su alcun server, né registrati, memorizzati nella cache o archiviati nel cloud. JSON contenenti risposte API riservate o campi aziendali interni possono essere utilizzati in tutta sicurezza: chiudendo la pagina tutti i dati vengono eliminati.
Authoritative References
- Compressione JSON
- CSV in JSON
- JSON to CSV
- JSON Diff
- JSON Escape / Unescape
- Appiattimento JSON
- Formattatore JSON
- Generatore JSON
- Query JSONPath
- Unire JSON
- Riparare JSON
- Validatore di Schema JSON
- Ordinare JSON
- JSON Stringify
- JSON in HTML
- JSON in Java
- JSON to Markdown
- JSON in SQL
- JSON in TOML
- JSON in TypeScript
- XML in JSON
- JSON in XML
- YAML in JSON
- Da JSON a YAML
- JSON in Python
- JSON in Go
- JSON in Rust
- JSON in Swift
- JSON a C#
- JSON a C++
- JSON to PHP