JSON ke HTML

Opsi:|

Alat online gratis untuk mengonversi larik JSON atau objek bersarang menjadi kode tabel HTML standar yang dapat disematkan ke halaman web. Mendukung perataan bersarang, kelas CSS kustom, pengguliran horizontal, 6 gaya visual, placeholder null, perlindungan batas baris. Tab ganda Code dan iframe untuk pratinjau waktu nyata.

Rekomendasi Terkait

Tentang JSON ke HTML dan Tabel HTML

Konverter JSON ke HTML (JSON to HTML Converter) adalah alat praktis yang secara otomatis mengubah struktur data JSON menjadi kode tabel HTML standar. Alat ini membebaskan developer dari pekerjaan berulang menulis templat `<table>` / `<tr>` / `<td>` secara manual, menjadikannya ideal untuk dengan cepat menampilkan respons API bersarang, file konfigurasi, atau struktur JSON apa pun sebagai tabel web.

Tabel HTML (HTML Table) adalah elemen tampilan data terstruktur standar W3C, terdiri dari wadah `<table>`, header `<thead>`, body `<tbody>`, baris `<tr>`, sel header `<th>`, sel data `<td>`, judul `<caption>`, dan tag semantik lainnya. Kode yang dihasilkan oleh alat ini secara ketat mengikuti struktur semantik ini, yang ramah untuk perayapan SEO dan aksesibilitas (pembaca layar dapat mengenalinya).

Ada tiga kategori alat JSON ke HTML di pasar: yang pertama hanya menghasilkan string kode HTML (mis. tooltt.com, codebeautify.org), menekankan "salin dan gunakan"; yang kedua juga menyediakan pratinjau visual (mis. alat ini, jsontables.com, TableConvert), menekankan "WYSIWYG"; yang ketiga mendukung ekspansi bersarang + injeksi kelas Tailwind (pemosisian diferensial alat ini), ideal untuk engineer yang perlu menyematkan JSON ke proyek frontend modern.

"Perataan Bersarang" alat ini adalah highlight diferensial atas sebagian besar pesaing: alat tradisional hanya akan menampilkan `{user:{name:'Alice'}}` sebagai string `"{\"name\":\"Alice\"}"`, tetapi alat ini secara rekursif memperluasnya menjadi kolom `user.name` (hingga 6 level, dengan pemisah yang dapat dikonfigurasi). Ini berarti Anda dapat langsung memproses data bisnis nyata dengan struktur bersarang yang kompleks seperti GitHub API, Stripe API, Notion API, tanpa melakukan perataan terlebih dahulu dengan jq / lodash.

Sorotan diferensial lainnya adalah "Hook kelas CSS kustom": alat tidak hanya menghasilkan gaya inline, tetapi juga memungkinkan penyuntikan string kelas apa pun pada tag `<table>`. Ini memungkinkan pengguna framework CSS utama seperti Tailwind / Bootstrap / Bulma / DaisyUI untuk langsung menggunakan kembali HTML yang dihasilkan oleh alat ini dan segera mendapatkan gaya desain yang konsisten dengan proyek mereka, tanpa mengedit CSS secara manual.

Kasus penggunaan

  • Pengembangan frontend: dengan cepat merender data JSON dari API menjadi tabel HTML untuk disematkan ke dasbor admin atau halaman dokumentasi
  • Proyek Tailwind / Bootstrap: rekatkan nama kelas Tailwind atau Bootstrap langsung ke bidang kelas tabel untuk integrasi mulus dengan sistem gaya yang ada
  • Halaman web responsif: pembungkus gulir horizontal default mencegah tabel seluler merusak tata letak halaman
  • Tampilan visualisasi data: rekatkan tabel bergaya ke blog, dokumentasi, Confluence, Notion, atau platform apa pun yang mendukung penyematan HTML
  • Pembuatan laporan: dengan cepat mengonversi data JSON yang diekspor dari backend menjadi laporan email HTML untuk pemangku kepentingan bisnis
  • Prototyping frontend: pratinjau gaya tabel dengan data nyata selama fase desain untuk selaras dengan produk dan desain sebelum pengiriman
  • Sistem CMS: buat cuplikan tabel HTML statis untuk WordPress, Drupal, dan platform CMS lainnya, menghindari kompleksitas mesin templat
  • Pengujian dan debugging: rekatkan output JSON.stringify dari konsol browser untuk dengan cepat mempratinjau struktur dua dimensi dari data bersarang yang kompleks
  • Template email: sematkan HTML tabel ke email HTML (uji kompatibilitas Outlook)
  • Penulisan dokumentasi API: sematkan tabel HTML di Markdown, Swagger, Redoc sebagai pengganti contoh JSON default
  • Skenario pengajaran: konversi tugas JSON bersarang dalam kursus struktur data menjadi tabel untuk tampilan penilaian batch
  • Laporan pembersihan data: gunakan mode Perataan untuk mengonversi JSON bersarang dari ekspor basis data menjadi tabel untuk perbandingan bidang yang mudah

Cara Penggunaan

  1. Tempel larik JSON (disarankan) atau objek tunggal ke editor kiri, atau klik "Sample" untuk memuat 3 contoh produk, atau klik "Upload" untuk memuat file .json / .txt
  2. Pilih mode pemrosesan bersarang di toolbar (disarankan: "Perataan"). Objek bersarang secara otomatis diperluas menjadi kunci bertitik seperti `user.name`
  3. Klik tombol "Convert" (atau cukup tekan Enter) untuk memicu konversi. Input dilindungi dengan debounce 500ms
  4. Beralih ke tab Code di kanan untuk melihat kode tabel HTML dengan penyorotan sintaks, atau tab Preview untuk melihat rendering iframe waktu nyata
  5. Aktifkan opsi gaya di toolbar (belang-belang / batas / hover / ringkas / responsif), masukkan kelas tabel kustom, atur placeholder null — pratinjau langsung diperbarui secara instan
  6. Setelah puas, klik "Copy" untuk menyalin kode HTML atau "Download" untuk menyimpan sebagai table.html. Klik Reset jika Anda perlu memulai dari awal

Fitur

  • Perataan otomatis objek bersarang: memperluas `{user:{name,age}}` secara rekursif menjadi kunci bertitik `user.name`, `user.age` (pemisah dapat dikonfigurasi), tanpa skrip manual
  • Tiga mode pemrosesan bersarang: Perataan (Disarankan, auto-expand hingga 6 level) / Kunci Tingkat Atas (objek bersarang sebagai satu kolom) / String (objek bersarang sebagai string JSON)
  • Hook kelas CSS kustom: menyuntikkan string kelas apa pun ke `<table>` dan pembungkus `<div>` opsional, terintegrasi mulus dengan Tailwind / Bootstrap / Bulma
  • Pengguliran horizontal responsif: pembungkus luar `overflow-x:auto` secara default, bilah gulir horizontal muncul otomatis di layar sempit
  • 6 toggle gaya visual: belang-belang, batas, sorotan baris, mode ringkas, kolom indeks pertama (#), keterangan tabel — diterapkan instan dari kotak centang toolbar
  • Tab ganda pratinjau Code + iframe: tab Code menampilkan sumber HTML dengan penyorotan sintaks, tab Preview merender tabel nyata di iframe sandbox secara waktu nyata
  • Penyorotan berdasarkan tipe: null ditampilkan miring abu-abu (teks placeholder dapat disesuaikan), boolean hijau/merah, angka biru, objek bersarang melihat JSON lengkap saat hover
  • Perlindungan batas baris: batas 1000 baris secara default (1-10000 dapat disesuaikan), otomatis memotong dengan pemberitahuan "Terpotong" untuk mencegah browser lambat
  • Umpan balik statistik pembuatan: panel kanan menampilkan "Dibuat X baris × Y kolom" + lencana pemotongan secara waktu nyata
  • Salin / unduh sekali klik: dalam mode Code, salin sumber HTML ke papan klip, atau unduh sebagai file table.html
  • Data sampel + unggah file: 3 sampel produk bawaan (Laptop / Mouse / Desk Chair) dimuat sekali klik, mendukung drag-and-drop atau klik untuk mengunggah file .json / .txt
  • Reset sekali klik: tombol Reset pada toolbar langsung mengembalikan semua 14 konfigurasi ke default
  • Riwayat lokal: berbasis localStorage, menyimpan 200 input terakhir secara persisten, dapat dipulihkan setelah refresh atau penutupan tab yang tidak disengaja
  • Pemrosesan sepenuhnya lokal di browser: semua penguraian JSON, pembuatan HTML, salin dan unduh terjadi di browser Anda, tidak ada data yang diunggah ke server mana pun

Contoh Kode

JavaScript: Perataan Bersarang + Integrasi Kelas Tailwind

javascript

Penggunaan dunia nyata yang paling umum: panggil GitHub API, ratakan objek bersarang menjadi kunci bertitik, lalu integrasikan dengan kelas Tailwind di proyek Anda.

// 1) Panggil GitHub API untuk mengambil daftar pengguna
async function fetchUsers() {
  const res = await fetch('https://api.github.com/users?per_page=10');
  return await res.json();
}

// 2) Fungsi perataan bersarang (setara dengan logika perataan alat)
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) Konversi data yang diratakan ke tabel HTML, suntikkan kelas Tailwind
function generateHtmlTable(rows) {
  const flat = rows.map(r => flattenObject(r));
  const cols = [...new Set(flat.flatMap(r => Object.keys(r)))];
  const thead = cols.map(c => `<th class="px-4 py-2 text-left">${c}</th>`).join('');
  const tbody = flat.map(r =>
    `<tr class="border-b hover:bg-gray-50">${cols.map(c => `<td class="px-4 py-2">${r[c] ?? 'N/A'}</td>`).join('')}</tr>`
  ).join('');
  return `<table class="min-w-full text-sm">
  <thead class="bg-gray-100"><tr>${thead}</tr></thead>
  <tbody>${tbody}</tbody>
</table>`;
}

// 4) Suntikkan ke halaman
const users = await fetchUsers();
const html = generateHtmlTable(users);
document.getElementById('table-container').innerHTML = html;
console.log('Dibuat ' + users.length + ' baris, ' + (Object.keys(flattenObject(users[0])).length) + ' kolom');

Python: JSON Bersarang ke Tabel HTML di Flask (Tanpa Dependensi Frontend)

python

Dalam rendering template backend, Anda dapat menggunakan pustaka bawaan Python untuk menghasilkan tabel HTML yang sama, mendukung perataan bersarang dan injeksi kelas.

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):
    """Meratakan objek bersarang secara rekursif"""
    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>Tidak ada data</p>"

    # Pemotongan baris
    truncated = False
    if len(data) > max_rows:
        data = data[:max_rows]
        truncated = True

    # Ratakan setiap baris
    flat_rows = [flatten(row) for row in data]

    # Kumpulkan semua nama kolom (menggunakan set untuk deduplikasi, menjaga urutan penyisipan)
    columns = []
    for row in flat_rows:
        for k in row.keys():
            if k not in columns:
                columns.append(k)

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

    # Hasilkan baris tabel
    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 dipotong ke {max_rows} baris pertama</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)

Baris Perintah: Perataan dengan jq + Menghasilkan Laporan HTML Statis

bash

Skenario operasi: agregat log JSON bersarang dengan jq, lalu tempelkan ke alat ini untuk menghasilkan laporan HTML dengan kelas Tailwind.

# 1) Gunakan jq untuk mengagregat dan meratakan log bersarang menjadi kunci bertitik
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) Tempelkan stats.json ke alat ini
#    Pilih mode "Perataan (Disarankan)" di toolbar
#    Centang "Belang-belang + Pembungkus Responsif + Batas"
#    Di nama kelas tabel masukkan: min-w-full text-sm border-collapse
#    Atur placeholder null: - (bidang yang hilang ditampilkan sebagai -)
#    Atur Keterangan: Statistik Log Error Produksi 2026-07
#    Klik Convert lalu unduh table.html

# 3) Unggah ke situs statis S3 / OSS
aws s3 cp table.html s3://my-bucket/reports/2026-07.html --acl public-read

# Atau sematkan ke dokumentasi Confluence / Notion / VuePress
sed -i '' 's/min-w-full/min-w-full shadow-md/g' table.html

# Atau kirim sebagai email HTML
mutt -e "set content_type=text/html" -s "Log Error 2026-07" your@email.com < table.html

Pertanyaan Umum

Bagaimana cara mengonversi data JSON menjadi tabel HTML?

Tempel larik JSON (setiap elemen adalah objek) ke kotak input kiri, klik tombol "Convert" di toolbar. Tab Code di kanan akan menampilkan kode tabel HTML dengan penyorotan sintaks, tab Preview menampilkan rendering iframe waktu nyata. Klik "Copy" untuk menempelkannya ke halaman HTML mana pun.

Bisakah objek JSON bersarang dikonversi menjadi tabel HTML?

Ya. Alat ini memiliki mode perataan bersarang bawaan, yang memperluas `{user:{name:'Alice',age:30}}` secara rekursif menjadi kolom `user.name` dan `user.age` hingga 6 level. Anda juga dapat beralih ke mode "Kunci Tingkat Atas" (mempertahankan objek bersarang sebagai string JSON satu kolom) atau mode "String" (memperlakukan semuanya sebagai string).

Bisakah saya mengubah pemisah kunci setelah perataan?

Pemisah default adalah `.` (menghasilkan `user.name`), sesuai dengan konvensi umum di JavaScript / MongoDB / Lodash. Jika Anda memerlukan `user_name` atau `user/name`, sesuaikan di input "Pemisah" pada toolbar (terlihat untuk pengguna tingkat lanjut).

Bisakah saya menyesuaikan gaya tabel HTML yang dihasilkan?

Alat ini menawarkan tiga cara penyesuaian gaya: ① 6 toggle visual pada toolbar (belang-belang, batas, hover, ringkas, indeks, keterangan) diterapkan secara instan; ② masukkan kelas kustom di input "nama kelas tabel" (mis. Tailwind `min-w-full border-collapse`), akan disuntikkan ke `<table class="...">`; ③ edit langsung HTML yang dihasilkan sebelum digunakan.

Apakah mendukung Tailwind / Bootstrap?

Ya. Masukkan kelas Tailwind (mis. `min-w-full border-collapse text-sm`) atau kelas Bootstrap (mis. `table table-striped table-hover table-bordered`) di input "nama kelas tabel" — alat akan menyuntikkan kelas-kelas ini ke tag `<table>`. Catatan: gaya inline alat memiliki prioritas tertinggi dan akan menimpa beberapa gaya Tailwind (warna latar, padding). Kami merekomendasikan untuk mematikan opsi toolbar yang sesuai (seperti belang-belang) sebelum menggunakan Tailwind.

Apa perbedaan antara tab Code dan tab Preview?

Tab Code menampilkan kode sumber HTML dengan penyorotan sintaks, cocok untuk menyalin dan mengedit. Tab Preview merender tabel nyata di iframe sandbox untuk pengalaman WYSIWYG. Kontennya identik — kedua bentuk memudahkan Anda beralih antara "lihat kode" dan "lihat hasil".

Apakah HTML yang dihasilkan mendukung desain responsif seluler?

Ya. Alat mengaktifkan opsi "Pembungkus Responsif" secara default, membungkus `<table>` dalam wadah `<div style="overflow-x:auto;max-width:100%;">`. Ketika lebar layar lebih kecil dari lebar tabel, wadah secara otomatis menampilkan bilah gulir horizontal, mencegah tabel merusak tata letak halaman. Opsi ini dapat dimatikan di toolbar.

Bagaimana nilai null, boolean, dan angka ditampilkan di sel?

Alat melakukan penyorotan berdasarkan tipe: null ditampilkan miring abu-abu (placeholder dapat disesuaikan di toolbar menjadi `N/A`, `-`, dll.), boolean true hijau, false merah, angka biru, string biasa ditampilkan apa adanya; objek bersarang dalam mode Perataan diekstrak menurut path, dalam mode lain dikonversi menjadi string JSON dan dipotong hingga 50 karakter.

Bisakah kode HTML yang dihasilkan digunakan langsung di situs web?

Ya. Outputnya adalah struktur tabel W3C HTML5 standar (`<table>` / `<thead>` / `<tbody>` / `<caption>`), CSS dikeluarkan sebagai gaya inline. Dapat ditempelkan langsung ke halaman HTML mana pun untuk penggunaan mandiri, tanpa ketergantungan pada CSS atau JS eksternal. Anda juga dapat mengunduhnya sebagai file table.html.

Apa perbedaan antara JSON ke HTML dan JSON ke CSV?

Tabel HTML adalah format visual bergaya, sempurna untuk disematkan ke halaman web; CSV adalah format data teks biasa, sempurna untuk diimpor ke Excel / Pandas / basis data untuk analisis data. Keduanya dihasilkan dari data JSON yang sama. Kami merekomendasikan untuk mempratinjau tata letak di alat ini terlebih dahulu, lalu menggunakan alat JSON ke CSV untuk mengekspor versi data.

Bagaimana cara mengubah teks header tabel?

Alat secara otomatis menggunakan kunci tingkat pertama dari objek JSON sebagai konten header `<th>` (dalam mode Perataan, path lengkap bertitik digunakan, mis. `user.name`). Jika Anda ingin header menampilkan teks yang berbeda (mis. bahasa Indonesia), ada tiga opsi: ① Ubah nama kunci JSON sumber langsung ke bahasa Indonesia; ② Edit manual konten `<th>...</th>` di tab Code setelah dihasilkan; ③ Gunakan sed untuk mengganti batch HTML yang dihasilkan.

table.html yang diunduh kosong saat dibuka di browser. Apa yang harus saya lakukan?

table.html yang diunduh hanya berisi struktur tag `<table>` (dengan kemungkinan pembungkus responsif `<div>`) — tidak memiliki kerangka HTML lengkap (`<html>` / `<head>` / `<body>`). Ini dirancang sebagai cuplikan untuk disematkan ke halaman web yang ada. Anda dapat menambahkan kerangka HTML lengkap secara manual menggunakan alat pemformatan HTML, atau menempelkannya langsung ke lokasi yang sesuai di halaman proyek Anda.

Halaman menjadi lambat saat membuat 1000+ baris. Apa yang harus saya lakukan?

Alat default ke perlindungan batas 1000 baris, menampilkan "Terpotong" jika terlampaui. Jika Anda benar-benar membutuhkan tabel 5000 baris, naikkan "Baris Maks" di toolbar ke 10000, tetapi kami merekomendasikan: ① Pisahkan menjadi tabel pagination (50 baris per halaman); ② Gunakan IntersectionObserver untuk pengguliran virtual; ③ Atau gunakan pustaka komponen khusus seperti TanStack Table / AG Grid untuk skenario tampilan data.

Apakah data saya diunggah ke server? Seberapa aman privasinya?

Semuanya berjalan secara lokal di browser Anda. Semua penguraian JSON, pembuatan HTML, salin, dan operasi unduh terjadi di browser Anda melalui JavaScript, dan pembacaan file hanya terjadi di FileReader lokal. Tidak ada yang dikirim ke server mana pun. Anda dapat dengan aman menggunakan alat ini dengan respons API sensitif dan bidang bisnis yang belum dirilis — menutup halaman akan menghapus semua data.

Pemecahan Masalah

Pemberitahuan: "Harap masukkan data JSON" atau kesalahan serupa

Kotak input kiri kosong atau hanya berisi spasi. Pastikan Anda telah menempelkan konten JSON yang valid, atau klik "Sample" untuk memuat data sampel, atau klik "Upload" untuk memilih file .json / .txt.

Pemberitahuan: "Unexpected token ... in JSON at position N"

Format JSON tidak valid. Penyebab umum: ① Koma tambahan di akhir (mis. [{},{},]); ② Kutip tunggal alih-alih kutip ganda; ③ Sintaks objek JS (mis. {key: value}) alih-alih JSON ({"key": "value"}). Gunakan alat pemformatan JSON untuk memvalidasi dan memperbaikinya terlebih dahulu.

Tabel yang dihasilkan hanya memiliki header, tanpa baris data

Data JSON adalah larik kosong [] atau objek kosong {}. Alat ini mengembalikan komentar `<!-- No valid objects found -->` untuk larik kosong. Tambahkan setidaknya satu objek data ke JSON sumber Anda.

Nama kolom terlalu panjang dalam mode Perataan (mis. user.profile.address.city.country.code)

Ketika bersarang terlalu dalam, kami sarankan: ① Beralih ke mode "Kunci Tingkat Atas" (hanya mengambil bidang tingkat atas, objek bersarang menjadi kolom JSON lengkap); ② Restrukturisasi JSON sumber Anda untuk mengurangi bersarang yang tidak perlu; ③ Gunakan tombol Reset di toolbar untuk mengembalikan konfigurasi perataan default.

Injeksi kelas Tailwind tidak berpengaruh

Alat mengeluarkan gaya inline secara default (padding, latar belakang), yang menimpa kelas utilitas dengan nama sama Tailwind. Saran: ① Matikan opsi gaya toolbar yang sesuai (seperti belang-belang) sebelum menggunakan Tailwind untuk mengontrol warna latar belakang; ② Atau gunakan PostCSS untuk menghapus atribut gaya inline dari HTML yang dihasilkan.

Tinggi tabel terjepit di dalam pembungkus responsif

"Pembungkus Responsif" membuat tinggi div luar secara default mengikuti tabel. Jika wadah induk Anda adalah tata letak flex tanpa tinggi yang ditentukan, tabel anak mungkin terjepit. Tambahkan min-h-0 ke wadah induk atau atur tinggi tabel.

table.html yang diunduh kosong saat dibuka di browser

File yang diunduh hanya berisi cuplikan <table> (dengan kemungkinan pembungkus responsif <div>), tanpa kerangka HTML lengkap (<!doctype html> / <html> / <head> / <body>). Ini dirancang untuk memudahkan penyematan ke halaman web yang ada. Gunakan alat pemformatan HTML untuk menambahkan kerangka lengkap, atau tempelkan langsung ke lokasi yang sesuai dalam proyek Anda.

Teks header tabel bahasa Indonesia menampilkan karakter rusak

Kunci JSON sumber berisi bahasa Indonesia — pastikan file sumber itu sendiri dikodekan UTF-8. Jika JSON disalin dari Excel, itu mungkin dikonversi ke GBK; gunakan alat konversi encoding untuk mengonversi ke UTF-8 sebelum menempel.

Ingin mengubah tabel yang dihasilkan secara batch (mis. mengganti logo perusahaan / mengubah warna)

Setelah dihasilkan, salin HTML dari tab Code di kanan dan gunakan sed / PostCSS / skrip kustom untuk mengganti atribut gaya secara batch. Perintah umum: sed -i '' 's/#f9fafb/#your-color/g' table.html.

Halaman lambat saat membuat 1000+ baris

Alat default ke perlindungan batas 1000 baris. Anda dapat menyesuaikan maxRows di toolbar hingga 10000, tetapi browser mengalami penurunan kinerja yang nyata saat merender DOM yang sangat besar (>1000 node). Kami sarankan: ① Pisahkan menjadi tabel pagination (50 baris per halaman); ② Gunakan IntersectionObserver untuk pengguliran virtual; ③ Atau gunakan pustaka komponen khusus seperti TanStack Table / AG Grid untuk skenario tampilan data.

Catatan riwayat hilang

Riwayat disimpan di localStorage browser. Menghapus data browser / beralih ke mode penyamaran / menggunakan browser lain akan menyebabkan riwayat hilang. Alat tidak mengunggah riwayat ke server mana pun, sehingga tidak dapat disinkronkan antar perangkat.

Tidak dapat melihat data mentah setelah batas baris

Alat default ke maxRows=1000, baris yang melebihi dipotong. Jika data sumber Anda > 1000 baris tetapi Anda hanya memerlukan N baris pertama untuk pratinjau, atur maxRows lebih kecil (mis. 100) untuk hasil yang lebih cepat. Untuk data lengkap, kami sarankan menggunakan skrip Python / Node.js secara langsung.

Glosarium

Tabel HTML (HTML Table)
Elemen tampilan data terstruktur standar W3C, terdiri dari tag semantik table / thead / tbody / tr / th / td / caption. Kode yang dihasilkan oleh alat ini secara ketat mengikuti struktur ini.
Larik JSON
Kumpulan objek yang dibungkus dalam tanda kurung siku [...]. Alat menggunakan setiap objek dalam larik sebagai baris tabel; larik kosong tidak menghasilkan tabel (pemberitahuan ditampilkan).
Objek JSON
Kumpulan pasangan kunci-nilai yang dibungkus dalam tanda kurung kurawal {}. Alat menggunakan setiap kunci objek sebagai header tabel dan nilai sebagai sel; objek tunggal secara otomatis dibungkus sebagai tabel satu baris.
Perataan (Flatten)
Memperluas objek bersarang secara rekursif menjadi kunci datar bertitik, mis. {user:{name:'A'}} → 'user.name'. Alat mendukung perataan otomatis 6 level dengan pemisah yang dapat dikonfigurasi.
thead / tbody
Dua partisi semantik tabel HTML: thead membungkus baris header (th), tbody membungkus baris data (td). Kode yang dihasilkan alat secara tegas membedakan kedua bagian ini.
Caption
Tag judul tabel, terletak di baris pertama di dalam tabel. Alat mendukung teks caption kustom; saat diaktifkan, judul yang ditentukan ditampilkan di atas tabel, yang berguna untuk SEO dan aksesibilitas.
Belang-belang (Zebra Striping)
Pola visual di mana baris ganjil dan genap bergantian menggunakan warna latar belakang yang berbeda, umumnya kombinasi #fff / #f9fafb. Alat mengaktifkan ini melalui kotak centang "Belang-belang", secara signifikan meningkatkan keterbacaan untuk tabel panjang.
Gaya Inline (Inline Style)
Menulis CSS langsung melalui atribut style dari tag HTML, daripada merujuk ke stylesheet eksternal. Alat mengeluarkan semua gaya sebagai gaya inline secara default, sehingga kode dapat digunakan apa adanya tanpa file CSS tambahan.
Hook kelas CSS
Kemampuan diferensial alat: menyuntikkan string kelas apa pun (seperti kelas Tailwind) pada tag `<table>`, terintegrasi mulus dengan framework CSS yang ada. Ini adalah upgrade utama atas pesaing.
iframe sandbox
Mode sandbox aman dari tag HTML iframe, yang dapat membatasi eksekusi skrip dan pengiriman formulir. Alat menggunakan iframe dengan sandbox="allow-same-origin" untuk mempratinjau HTML yang dihasilkan, mencegah eksekusi skrip yang tidak disengaja.
Penyorotan berdasarkan tipe
Kemampuan diferensial alat: menerapkan warna berbeda berdasarkan tipe JS dari nilai sel (null / boolean / number / object / string), membuat debugging data API lebih intuitif.
Riwayat localStorage
Penyimpanan kunci-nilai lokal yang disediakan oleh browser (kapasitas ~5-10MB). Alat menggunakan localStorage untuk menyimpan 200 input terakhir secara persisten, yang dapat dengan cepat dipulihkan setelah refresh atau penutupan tab yang tidak disengaja.
Pembungkus Responsif (Responsive Wrapper)
Membungkus tabel dalam `<div style="overflow-x:auto;max-width:100%;">` luar sehingga tabel secara otomatis mendapatkan bilah gulir horizontal di layar sempit. Alat mengaktifkannya secara default; dapat dimatikan di toolbar.
Debounce
Teknik optimasi kinerja frontend: menggabungkan callback事件 frekuensi tinggi (seperti input) menjadi satu eksekusi setelah pemicu terakhir. Alat menetapkan debounce 500ms untuk menghindari kelambatan dari penguraian file besar.
W3C HTML5
Spesifikasi standar HTML yang dibuat oleh World Wide Web Consortium (W3C). Kode yang dihasilkan alat sesuai dengan spesifikasi HTML5 dan dirender dengan benar di semua browser modern.

Perbandingan Tiga Mode Pemrosesan Bersarang

Toolbar menyediakan tiga mode untuk skenario bersarang yang berbeda. Pilih berdasarkan kompleksitas struktur JSON Anda:

ModePerilakuContoh KolomSkenario
Perataan (Disarankan)Memperluas objek bersarang secara rekursif menjadi kunci bertitik (kedalaman ≤ 6)user.name / user.tags.0Struktur bersarang API nyata seperti GitHub / Stripe / Notion; Anda ingin setiap bidang dalam kolomnya sendiri
Kunci Tingkat AtasHanya mengambil kunci tingkat pertama objek; objek / larik bersarang menjadi string JSON satu kolomuser / tagsKetika struktur bersarang tidak stabil atau terlalu dalam (>6 level); Anda hanya peduli dengan gambaran bidang tingkat atas
StringMemaksa semua nilai diperlakukan sebagai string; objek bersarang di-JSON.stringify secara langsunguser (sebagai blob JSON)Skenario debugging: pertahankan struktur JSON asli untuk inspeksi visual

Lembar Cheat 14 Opsi Konfigurasi Toolbar

Semua 14 opsi konfigurasi di toolbar dan perbedaan visualnya, untuk pemilihan kombinasi yang cepat:

OpsiTipeEfek Visual / Perilaku
includeIndexcheckboxTambahkan kolom bernomor # di paling kiri (meningkat dari 1)
stripedcheckboxLatar belakang baris ganjil/genap bergantian (putih / #f9fafb)
borderedcheckboxBatas abu-abu 1px di sekitar sel + garis penekanan 2px di bawah header
hovercheckboxLatar belakang abu-abu muda #f9fafb saat hover baris
compactcheckboxPadding sel dikurangi dari 10px×14px menjadi 6px×8px
responsivecheckboxBungkus dalam wadah overflow-x:auto; gulir horizontal di layar sempit
flattenModeselectPemrosesan bersarang: Perataan (Disarankan) / Kunci Tingkat Atas / String
tableClasstextKelas CSS kustom yang disuntikkan ke <table class="...">
nullPlaceholdertextTeks tampilan untuk sel null / undefined (kosong menampilkan 'null')
maxRowsnumberJumlah baris maksimum yang dihasilkan (1-10000), otomatis memotong dengan pemberitahuan saat terlampaui
captiontextTeks judul kustom yang ditampilkan di atas tabel (caption-side: top)
indexHeadertextTeks header untuk kolom indeks (default #)
flattenSeparatortextPemisah untuk kunci dalam mode Perataan (default ., dapat diganti _ / - dll.)
wrapperClasstextKelas CSS kustom untuk <div> pembungkus responsif (lanjut)

Lembar Cheat Aturan Penyorotan Sel Berdasarkan Tipe

Alat secara otomatis menerapkan warna berbeda berdasarkan tipe JavaScript dari nilai JSON untuk pengenalan tipe data yang cepat:

Tipe JSDeteksiGaya yang DiterapkanContoh Output
null / undefinedval === null || val === undefinedcolor: #9ca3af; font-style: italic; menampilkan teks placeholder (dapat disesuaikan)<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 (mode Perataan)type === 'object' + mode Perataan mengekstrak menurut pathObjek bersarang diekstrak menurut path ke nilai atomuser.name → 'Alice'
object / array (mode lain)typeof val === 'object'JSON.stringify lalu escape dan potong hingga 50 karakter, miring ungu + title hover menunjukkan JSON lengkap<span style="color:#7c3aed;font-style:italic;" title="...">{"id":1…</span>
stringlainnyaWarna teks default #4b5563Jennifer Martinez

Privacy & Security

Alat JSON ke HTML ini menjalankan semua penguraian JSON, perataan bersarang, pembuatan HTML, salin, dan operasi unduh sepenuhnya di browser Anda melalui JavaScript. Data JSON masukan dan kode HTML yang dihasilkan tidak diunggah ke server mana pun, juga tidak dicatat, di-cache, atau disimpan di cloud. Anda dapat dengan aman menggunakan alat ini dengan respons API sensitif yang belum dirilis dan bidang bisnis internal — menutup halaman akan menghapus semua data.

Authoritative References