JSONをHTMLに変換
JSON配列やネストオブジェクトをWebページに埋め込み可能な標準HTMLテーブルコードに1クリックで変換できる無料オンラインツール。ネスト平坦化(user.name)、カスタムCSS class、レスポンシブ横スクロール、6種のスタイルオプション、nullプレースホルダー、行数制限保護に対応。Codeとiframeの2タブでリアルタイムプレビュー。
関連おすすめ
JSON→HTML と HTML テーブルについて
JSON→HTML 変換ツール(JSON to HTML Converter)は、JSON データ構造を標準 HTML テーブルコードに自動変換する実用ツールです。手動で `<table>` / `<tr>` / `<td>` テンプレートを書く繰り返し作業から開発者を解放し、API から返されたネストデータ、設定ファイル、その他の JSON 構造を Web テーブルとしてすばやく表示するシナリオに特に適しています。
HTML テーブル(HTML Table)は W3C 標準の構造化データ表示要素で、`<table>` コンテナ、`<thead>` ヘッダー、`<tbody>` ボディ、`<tr>` 行、`<th>` ヘッダーセル、`<td>` データセル、`<caption>` タイトルなどのタグから構成されます。本ツールが生成するコードはこのセマンティック構造に厳密に従い、SEO クロールやアクセシビリティ(スクリーンリーダーで認識可能)に優れています。
市場にある JSON→HTML ツールは 3 つのカテゴリに分類されます:第 1 類は HTML コード文字列のみを生成(例:tooltt.com、codebeautify.org)、「コピーして使用」を強調;第 2 類はビジュアルプレビューも提供(例:本ツール、jsontables.com、TableConvert)、「WYSIWYG」を強調;第 3 類はネスト展開 + Tailwind class 注入をサポート(本ツールの差別化ポジショニング)、JSON を最新のフロントエンドプロジェクトに組み込む必要があるエンジニアに適しています。
本ツールの「ネスト平坦化」は、ほとんどの競合に対する差別化されたハイライトです:従来のツールは `{user:{name:'Alice'}}` を `"{\"name\":\"Alice\"}"` 文字列としてそのまま表示しますが、本ツールはそれを `user.name` 列に再帰展開します(最大 6 階層、区切り文字カスタマイズ可能)。これは jq / lodash で事前に平坦化することなく、GitHub API、Stripe API、Notion API などネスト構造が複雑な実際のビジネスデータを直接処理できることを意味します。
もう一つの差別化されたハイライトは「カスタム CSS class フック」です:本ツールはインラインスタイルを生成するだけでなく、`<table>` タグに任意の class 文字列を注入できます。これにより、Tailwind / Bootstrap / Bulma / DaisyUI などの主要な CSS フレームワークのユーザーは、本ツールが生成した HTML を直接再利用し、CSS を手動編集することなくプロジェクトと一貫したデザインスタイルを即座に取得できます。
ユースケース
- フロントエンド開発:API から返された JSON データを HTML テーブルにすばやくレンダリングし、管理画面やドキュメントページに埋め込む
- Tailwind / Bootstrap プロジェクト:「table class 名」入力に Tailwind または Bootstrap クラスを直接入力し、既存のスタイルシステムとシームレスに統合
- レスポンシブ Web ページ:デフォルトの横スクロールラップでモバイルテーブルがページレイアウトを崩さない
- データ可視化表示:ブログ / ドキュメント / Confluence / Notion など HTML 埋め込みをサポートするプラットフォームにスタイル付きテーブルを貼り付け
- レポート生成:バックエンドからエクスポートされた JSON データを HTML メールレポートにすばやく変換し、業務担当者に送信
- フロントエンドプロトタイピング:デザインフェーズで実データを使ってテーブルスタイルをプレビューし、納品前にプロダクト / デザインと整合
- CMS システム:WordPress / Drupal などの CMS 向けに静的 HTML テーブルスニペットを作成し、テンプレートエンジンの複雑さを回避
- テストとデバッグ:ブラウザコンソールの JSON.stringify 出力を貼り付けて、複雑なネストデータの 2次元構造をすばやくプレビュー
- メールテンプレート:テーブル HTML を HTML メールにインライン化(Outlook 互換性のテストが必要)
- API ドキュメント作成:Markdown / Swagger / Redoc に HTML テーブルを埋め込み、デフォルトの JSON サンプルを置き換え
- 教育シナリオ:データ構造の授業で、学生から提出されたネスト JSON 課題をテーブルに変換し、一括採点表示
- データクレンジングレポート:データベースからエクスポートされたネスト JSON を平坦化モードでテーブルに変換し、フィールド比較を容易化
使い方
- 左側のエディタに JSON 配列(推奨)または単一オブジェクトを貼り付けるか、「Sample」をクリックして 3つの商品サンプルをロード、「Upload」をクリックして .json / .txt ファイルをロード
- ツールバーでネスト処理モードを選択(推奨:「平坦化」)。ネストオブジェクトは `user.name` などのドット区切りキーに自動展開
- 「Convert」ボタンをクリック(または Enter キーを押す)して変換を実行。入力時には 500ms のデバウンス保護あり
- 右側の Code タブで構文ハイライト付き HTML テーブルコードを確認、Preview タブで iframe のリアルタイム描画を確認
- ツールバーでスタイルオプション(ゼブラストライプ / ボーダー / ホバー / コパクト / レスポンシブ)をチェックし、カスタム table class を入力、null プレースホルダーを設定。ライブプレビューが自動更新
- 満足したら「Copy」をクリックして HTML コードをコピー、または「Download」をクリックして table.html としてダウンロード。リセットする場合は Reset をクリック
特徴
- ネストオブジェクト自動平坦化: `{user:{name,age}}` を `user.name`、`user.age` などのドット記法キーに再帰展開(区切り文字設定可能)、手動の平坦化スクリプト不要
- 3つのネスト処理モード: 平坦化(推奨、6階層まで自動展開)/ トップレベルキー(ネストオブジェクトを単一列に)/ 文字列(ネストオブジェクトをJSON文字列でプレビュー)
- カスタムCSS classフック: `<table>` とオプションの外側 `<div>` に任意の class 文字列を注入し、Tailwind / Bootstrap / Bulma などのスタイルシステムとシームレスに統合
- レスポンシブ横スクロール: デフォルトで外側を `overflow-x:auto` コンテナでラップし、狭幅画面で自動的に横スクロールバーが表示され、ページレイアウトを崩さない
- 6つのスタイルトグル: ゼブラストライプ、ボーダー、行ホバー、ハイライト、コンパクトモード、最初のインデックス列(#)、テーブルキャプション — ツールバーチェックボックスで即時反映
- Code + iframe プレビューの2タブ: Code タブは構文ハイライト付き HTML ソース、Preview タブはサンドボックス iframe で実際のテーブルをリアルタイム描画
- タイプ認識ハイライト: null は灰色イタリック(プレースホルダーテキストカスタマイズ可)、ブール値は緑/赤、数値は青、ネストオブジェクトはホバーで完全 JSON を確認
- 行数制限保護: デフォルト 1000 行上限(1-10000 で調整可)、超過時は自動切り詰めと「切り詰め済み」通知で巨大 DOM レンダリングのブラウザ負荷を防止
- 生成統計フィードバック: 右パネルに「X行×Y列 生成済み」+ 切り詰めバッジをリアルタイム表示し、長大 JSON デバッグ時にデータ規模を一目で把握
- 1クリックコピー / ダウンロード: Code モードで HTML ソースをクリップボードにコピー、または table.html ファイルとしてダウンロードして任意の Web サイトにそのまま利用
- サンプルデータ + ファイルアップロード: 3つの商品サンプル(Laptop / Mouse / Desk Chair)を 1クリックでロード、.json / .txt ファイルのドラッグ&ドロップまたはクリックアップロードも対応
- 1クリックリセット: ツールバー右の Reset ボタンで 14項目の設定を一括デフォルトに戻し、高速な試行錯誤に最適
- ローカル履歴: localStorage ベースで最新 200 件の入力を永続保存、リフレッシュや誤ってタブを閉じても復元可能
- 完全ブラウザローカル処理: すべての JSON 解析、HTML 生成、コピー、ダウンロードはブラウザ内で行われ、データは一切サーバーに送信されません
コード例
JavaScript: ネスト平坦化 + Tailwind class 統合
javascript実際の開発で最も一般的な使用方法:GitHub API を呼び出し、ネストオブジェクトをドット記法キーに平坦化し、Tailwind class でプロジェクトに統合します。
// 1) GitHub API を呼び出してユーザーリストを取得
async function fetchUsers() {
const res = await fetch('https://api.github.com/users?per_page=10');
return await res.json();
}
// 2) ネスト平坦化関数(本ツールの平坦化ロジックと等価)
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) 平坦化されたデータを HTML テーブルに変換、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) ページに注入
const users = await fetchUsers();
const html = generateHtmlTable(users);
document.getElementById('table-container').innerHTML = html;
console.log(users.length + '行、' + (Object.keys(flattenObject(users[0])).length) + '列を生成しました');Python: Flask でネスト JSON を HTML テーブルに(フロントエンド依存なし)
pythonバックエンドテンプレートレンダリング時、Python 組み込みライブラリで同じ HTML テーブルを生成でき、ネスト平坦化と class 注入をサポートします。
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):
"""ネストオブジェクトを再帰的に平坦化"""
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>データなし</p>"
# 行切り詰め
truncated = False
if len(data) > max_rows:
data = data[:max_rows]
truncated = True
# 各行を平坦化
flat_rows = [flatten(row) for row in data]
# すべての列名を収集(set で重複排除、挿入順序を保持)
columns = []
for row in flat_rows:
for k in row.keys():
if k not in columns:
columns.append(k)
# thead を生成
thead = "".join(f'<th class="px-4 py-2 text-left bg-gray-100">{c}</th>' for c in columns)
# テーブル行を生成
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">データを最初の {max_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)コマンドライン: jq 平坦化 + 本ツールで静的 HTML レポート生成
bash運用シナリオ:jq でネスト JSON ログを集計し、本ツールに貼り付けて Tailwind class 付き HTML レポートを生成します。
# 1) jq を使用してネストログを集計し、ドット区切りキーに平坦化
cat app.log | jq -s '
group_by(.response.status_code) |
map({
status: .[0].response.status_code,
count: length,
"first_request.method": .[0].request.method,
"last_request.url": .[-1].request.url,
"first_seen": min_by(.timestamp).timestamp,
"last_seen": max_by(.timestamp).timestamp
})
' > stats.json
# 2) stats.json を本ツールに貼り付け
# ツールバーで「平坦化(推奨)」モードを選択
# 「ゼブラストライプ + レスポンシブラップ + ボーダー」をチェック
# table class 名に min-w-full text-sm border-collapse を入力
# null プレースホルダーを - に設定(欠損フィールドを - と表示)
# Caption を 2026-07 本番エラーログ統計 に設定
# Convert をクリックして table.html をダウンロード
# 3) S3 / OSS 静的サイトにアップロード
aws s3 cp table.html s3://my-bucket/reports/2026-07.html --acl public-read
# または Confluence / Notion / VuePress ドキュメントに埋め込み
sed -i '' 's/min-w-full/min-w-full shadow-md/g' table.html
# または HTML メールとして送信
mutt -e "set content_type=text/html" -s "2026-07 エラーログ" your@email.com < table.htmlよくある質問
JSON データを HTML テーブルに変換するには?
JSON 配列(各要素がオブジェクト)を左側の入力ボックスに貼り付け、ツールバーの「Convert」ボタンをクリックします。右側の Code タブに構文ハイライト付き HTML テーブルコードが表示され、Preview タブに iframe でのリアルタイム描画が出ます。「Copy」で任意の HTML ページに貼り付けできます。
ネストされた JSON オブジェクトは HTML テーブルに変換できますか?
はい。本ツールにはネスト平坦化モードが内蔵されており、`{user:{name:'Alice',age:30}}` を `user.name` と `user.age` の 2列に 6階層まで再帰展開します。ツールバーで「トップレベルキー」モード(ネストオブジェクトを単一列の JSON 文字列として保持)や「文字列」モード(すべてを文字列として扱う)に切り替えることもできます。
平坦化後のキー区切り文字を変更できますか?
デフォルトの区切り文字は `.`(`user.name` を生成)で、JavaScript / MongoDB / Lodash などの主要な規約に準拠します。`user_name` や `user/name` が必要な場合は、ツールバーの「区切り文字」入力(上級者向け表示)でカスタマイズできます。
生成された HTML テーブルのスタイルをカスタマイズできますか?
本ツールには 3つのスタイルカスタマイズ方法があります:① ツールバーの 6つのビジュアルトグル(ゼブラストライプ、ボーダー、ホバー、コンパクト、インデックス、キャプション)が即時反映、②「table class 名」入力にカスタム class(例:Tailwind の `min-w-full border-collapse`)を入力すると `<table class="...">` に注入、③ 生成された HTML を使用前に直接編集。
Tailwind / Bootstrap はサポートしていますか?
はい。「table class 名」入力に Tailwind クラス(例:`min-w-full border-collapse text-sm`)や Bootstrap クラス(例:`table table-striped table-hover table-bordered`)を入力すると、本ツールがこれらの class を `<table>` タグに注入します。注意:本ツールのインラインスタイルが最優先となり、Tailwind の一部のスタイル(背景色、パディング)を上書きします。Tailwind を使用する場合は、対応するツールバーオプション(ゼブラストライプなど)をオフにすることをお勧めします。
Code タブと Preview タブの違いは何ですか?
Code タブは構文ハイライト付きの HTML ソースコードを表示し、コピーや編集に便利です。Preview タブはサンドボックス iframe で実際のテーブルを描画し、WYSIWYG 体験を提供します。内容は同一で、「コードを見る」と「結果を見る」を素早く切り替えることができます。
生成された HTML はモバイルレスポンシブに対応していますか?
はい。本ツールはデフォルトで「レスポンシブラップ」オプションを有効にし、`<table>` を `<div style="overflow-x:auto;max-width:100%;">` コンテナでラップします。画面幅がテーブル幅より小さい場合、コンテナに自動的に横スクロールバーが表示され、ページレイアウトを壊しません。このオプションはツールバーでオフにできます。
セルの null / ブール値 / 数値はどのように表示されますか?
本ツールはタイプ認識ハイライトを行います:null は灰色イタリック(プレースホルダーはツールバーで `N/A`、`-` などにカスタマイズ可)、ブール値 true は緑、false は赤、数値は青、通常の文字列はそのまま表示。平坦化モードではネストオブジェクトはパスで取得、他のモードでは JSON 文字列に変換し 50 文字で切り詰めます。
生成された HTML コードは Web サイトで直接使用できますか?
はい。出力は標準 W3C HTML5 テーブル構造(`<table>` / `<thead>` / `<tbody>` / `<caption>`)で、CSS はインライン style として出力されます。任意の HTML ページにそのまま貼り付けて単独使用でき、外部 CSS や JS には依存しません。table.html ファイルとしてダウンロードすることもできます。
JSON→HTML と JSON→CSV の違いは何ですか?
HTML テーブルはスタイル付きビジュアル形式で、Web ページに埋め込むのに適しています。CSV はプレーンテキストデータ形式で、Excel / Pandas / データベースへのインポート、データ分析に適しています。両方とも同じ JSON データから生成されます。本ツールでレイアウトをプレビューし、JSON→CSV ツールでデータ版をエクスポートすることをお勧めします。
テーブルヘッダーのテキストを変更するには?
本ツールは JSON オブジェクトの第 1階層のキーをテーブルヘッダー `<th>` コンテンツとして自動使用します(平坦化モードでは `user.name` のようなドット区切りの完全パス)。ヘッダーに別のテキスト(例:日本語)を表示したい場合は、3つの方法があります:① ソース JSON のキー名を直接変更、② 生成後に右側の Code タブで `<th>...</th>` コンテンツを手動編集、③ sed で生成 HTML を一括置換。
ダウンロードした table.html がブラウザで開くと空白です。どうすればいいですか?
ダウンロードした table.html には `<table>` タグ構造(レスポンシブラップ `<div>` を含む場合あり)のみが含まれ、完全な HTML スケルトン(`<html>` / `<head>` / `<body>`)は含まれません。既存の Web ページに埋め込むスニペットとして設計されています。HTML フォーマットツールで完全な HTML スケルトンを手動追加するか、プロジェクトページの適切な位置にそのまま貼り付けてください。
1000 行以上のテーブルを生成するとページが固くなります。どうすればいいですか?
本ツールはデフォルトで 1000 行の上限保護があり、超過すると「切り詰め済み」と表示されます。5000 行の大規模テーブルが必要な場合はツールバーの「最大行数」を 10000 に上げられますが、以下の方法をお勧めします:① ページネーション分割(1ページ 50 行)、② IntersectionObserver で仮想スクロール、③ データ表示用に TanStack Table / AG Grid などの専用コンポーネントライブラリを使用。
データはサーバーにアップロードされますか?プライバシーは安全ですか?
すべてブラウザ内でローカル実行されます。すべての JSON 解析、HTML 生成、コピー、ダウンロード操作は JavaScript によってブラウザ内で行われ、ファイルの読み取りもローカルの FileReader でのみ処理されます。機密性の高い API レスポンスや未公開のビジネスフィールドを含む JSON でも安心して使用でき、ページを閉じるとすべてのデータが消去されます。
トラブルシューティング
「JSON データを入力してください」または同様のエラーが表示される
左側の入力ボックスが空か、空白文字のみです。有効な JSON コンテンツを貼り付けたか、「Sample」をクリックしてサンプルデータをロードしたか、「Upload」をクリックして .json / .txt ファイルを選択したことを確認してください。
「Unexpected token ... in JSON at position N」が表示される
JSON の形式が無効です。一般的な原因:① 末尾に余分なカンマ(例:[{},{},])、② シングルクォートの代わりにダブルクォートを使用、③ JS オブジェクト構文(例:{key: value})ではなく JSON({"key": "value"})が必要。JSON フォーマットツールで先に検証・修正してください。
生成されたテーブルにヘッダーしかなく、データ行がない
JSON データが空配列 [] または空オブジェクト {} です。本ツールは空配列に対して `<!-- No valid objects found -->` コメントを返します。ソース JSON に少なくとも 1つのオブジェクトデータを追加してください。
平坦化モードで列名が長すぎる(例:user.profile.address.city.country.code)
ネスト階層が深すぎる場合の推奨:①「トップレベルキー」モードに変更(トップレベルフィールドのみ取得、ネストオブジェクトは JSON 全体の列に)、② ソース JSON 構造を変更して不要なネストを削減、③ ツールバーの Reset ボタンでデフォルトの平坦化設定に戻す。
Tailwind class 注入後にスタイルが反映されない
本ツールはデフォルトでインライン style(パディング、背景など)を出力し、Tailwind と同名のユーティリティクラスを上書きします。推奨:① Tailwind で背景色を制御する前に、対応するツールバースタイルオプション(ゼブラストライプなど)をオフにする、② または PostCSS を使用して生成された HTML のインライン style 属性を削除する。
レスポンシブラップ後、テーブルの高さが圧縮される
「レスポンシブラップ」はデフォルトで外側 div の高さをテーブルに追従させます。親コンテナがフレックスレイアウトで高さが指定されていない場合、子テーブルが圧縮される可能性があります。親コンテナに min-h-0 を追加するか、テーブルの高さを設定してください。
ダウンロードした table.html がブラウザで開くと空白になる
ダウンロードしたファイルには <table> スニペット(レスポンシブラップ <div> を含む場合あり)のみが含まれ、完全な HTML スケルトン(<!doctype html> / <html> / <head> / <body>)は含まれません。これは既存の Web ページに簡単に埋め込めるように設計されています。HTML フォーマットツールで完全なスケルトンを追加するか、プロジェクトの適切な位置にそのまま貼り付けてください。
テーブルヘッダーの日本語が文字化けする
ソース JSON のキーに日本語が含まれている場合、ソースファイル自体が UTF-8 エンコーディングであることを確認してください。Excel からコピーした JSON は GBK に変換されている可能性があるため、エンコーディング変換ツールで UTF-8 に変換してから貼り付けてください。
生成されたテーブルを一括変更したい(例:会社ロゴの置換 / 色の変更)
生成後に右側の Code タブで HTML をコピーし、sed / PostCSS / カスタムスクリプトでスタイル属性を一括置換します。一般的なコマンド:sed -i '' 's/#f9fafb/#your-color/g' table.html。
1000+ 行のテーブル生成時にページが固くなる
本ツールはデフォルトで 1000 行上限保護を設定しています。ツールバーで maxRows を 10000 まで調整できますが、巨大 DOM(>1000 ノード)のレンダリングではブラウザのパフォーマンスが顕著に低下します。推奨:① ページネーション分割(1ページ 50 行)、② IntersectionObserver で仮想スクロール、③ データ表示シナリオでは TanStack Table / AG Grid などの専用コンポーネントライブラリを使用。
履歴レコードが失われた
履歴はブラウザの localStorage に保存されています。ブラウザデータの消去 / シークレットモードへの切り替え / 別のブラウザの使用により履歴が失われます。本ツールは履歴をサーバーにアップロードしないため、デバイス間で同期できません。
行数制限後に元データが見えない
本ツールはデフォルトで maxRows=1000 であり、超過すると切り詰められます。ソースデータが 1000 行以上だが先頭 N 行のプレビューのみ必要な場合は、maxRows を小さく(例:100)するとより速く結果を取得できます。全データが必要な場合は、Python Faker / Node.js などのスクリプトで直接処理することをお勧めします。
用語集
- HTML テーブル (HTML Table)
- W3C 標準の構造化データ表示要素。table / thead / tbody / tr / th / td / caption などのセマンティックタグで構成されます。本ツールが生成するコードはこの構造に厳密に従います。
- JSON 配列
- 角括弧 [...] で囲まれたオブジェクトの集合。本ツールは配列の各オブジェクトをテーブルの 1行として使用します。空配列の場合はテーブルを生成しません(通知を表示)。
- JSON オブジェクト
- 中括弧 {} で囲まれたキーと値のペアの集合。本ツールはオブジェクトの各キーをテーブルヘッダーとして、値をセルとして使用します。単一オブジェクトは自動的に 1行テーブルとしてラップされます。
- ネスト平坦化 (Flatten)
- ネストされたオブジェクトをドット区切りのフラットキーに再帰的に展開します。例:{user:{name:'A'}} → 'user.name'。本ツールは 6階層までの自動平坦化をサポートし、区切り文字はカスタマイズ可能です。
- thead / tbody
- HTML テーブルの 2つのセマンティック区分:thead はヘッダー行(th)をラップし、tbody はデータ行(td)をラップします。本ツールが生成するコードはこれら 2つの部分を厳密に区別します。
- Caption
- テーブルタイトルタグで、テーブルの内部最初の行にあります。本ツールはカスタムキャプションテキストをサポートし、有効にすると指定されたタイトルがテーブル上部に表示され、SEO とアクセシビリティの両方に役立ちます。
- ゼブラストライプ (Zebra Striping)
- 奇数行と偶数行が異なる背景色を交互に使用するビジュアルパターン。一般的に #fff / #f9fafb の組み合わせが使用されます。本ツールでは「ゼブラストライプ」チェックボックスで有効化し、長いテーブルの可読性を大幅に向上させます。
- インラインスタイル (Inline Style)
- 外部スタイルシートを参照するのではなく、HTML タグの style 属性で直接 CSS を記述すること。本ツールはデフォルトでスタイルをすべてインライン style として出力するため、追加の CSS ファイルなしでコードをそのまま使用できます。
- CSS class フック
- 本ツールの差別化機能:`<table>` タグに任意の class 文字列(Tailwind クラスなど)を注入し、既存の CSS フレームワークとシームレスに統合。これは競合に対する重要なアップグレードです。
- iframe sandbox
- HTML タグ iframe のセキュアサンドボックスモード。スクリプト実行やフォーム送信を制限できます。本ツールは sandbox="allow-same-origin" の iframe を使用して生成 HTML をプレビューし、偶発的なスクリプト実行を防止します。
- タイプ認識ハイライト
- 本ツールの差別化機能:セル値の JS タイプ(null / boolean / number / object / string)に応じて異なる色を適用し、API データのデバッグをより直感的にします。
- localStorage 履歴
- ブラウザが提供するローカルキーバリューストレージ(容量約 5-10MB)。本ツールは localStorage を使用して最新 200 件の入力を永続保存し、リフレッシュや誤ってタブを閉じた後にすばやく復元できます。
- レスポンシブラップ (Responsive Wrapper)
- テーブルの外側を `<div style="overflow-x:auto;max-width:100%;">` でラップし、狭幅画面で自動的に横スクロールバーが表示されるようにします。本ツールはデフォルトで有効化しており、ツールバーでオフにできます。
- デバウンス (Debounce)
- フロントエンドパフォーマンス最適化テクニック:高頻度イベント(入力など)のコールバックを最後のトリガー後に 1 回実行するようにマージ。本ツールは 500ms のデバウンスを設定し、大規模ファイル解析によるラグを回避します。
- W3C HTML5
- World Wide Web Consortium(W3C)が策定した HTML 標準仕様。本ツールが生成するコードは HTML5 仕様に準拠し、すべてのモダンブラウザで正しくレンダリングされます。
3つのネスト処理モード比較表
ツールバーは異なるネストシナリオに対応する 3つのモードを提供します。JSON 構造の複雑さに基づいて選択してください:
| モード | 処理動作 | サンプル列名 | 適用シナリオ |
|---|---|---|---|
平坦化(推奨) | ネストオブジェクトをドット区切りのキーに再帰展開(深さ ≤ 6) | user.name / user.tags.0 | GitHub / Stripe / Notion などの実 API ネスト構造。各フィールドを別々の列にしたい場合 |
トップレベルキー | オブジェクトの第 1階層キーのみ取得。ネストオブジェクト / 配列は単一列の JSON 文字列に | user / tags | ネスト構造が不安定または深すぎる(>6 階層)場合。トップレベルフィールドの概要のみ必要な場合 |
文字列 | すべての値を強制的に文字列として処理。ネストオブジェクトは直接 JSON.stringify | user(JSON ブロブとして) | デバッグシナリオ:元の JSON 構造を保持して目視確認したい場合 |
ツールバー 14 設定オプション早見表
ツールバーの 14 の設定オプションとその視覚的差分を一覧化し、迅速な組み合わせ選択を可能にします:
| オプション | タイプ | 視覚効果 / 動作 |
|---|---|---|
includeIndex | checkbox | テーブルの最左端に # 番号列を追加(1 から増加) |
striped | checkbox | 奇数/偶数行の背景色を交互に(白 / #f9fafb) |
bordered | checkbox | セル周囲に 1px 灰色のボーダー + ヘッダー下に 2px の強調線 |
hover | checkbox | 行ホバー時に薄いグレー #f9fafb 背景 |
compact | checkbox | セルのパディングを 10px×14px から 6px×8px に縮小 |
responsive | checkbox | overflow-x:auto コンテナでラップ、狭幅画面で横スクロール |
flattenMode | select | ネスト処理:平坦化(推奨)/ トップレベルキー / 文字列 |
tableClass | text | <table class="..."> に注入されるカスタム CSS class |
nullPlaceholder | text | null / undefined セルの表示テキスト(空白の場合 'null' と表示) |
maxRows | number | 最大生成行数(1-10000)、超過時は自動切り詰めと通知 |
caption | text | テーブル上部に表示されるカスタムタイトルテキスト(caption-side: top) |
indexHeader | text | インデックス列のヘッダーテキスト(デフォルト #) |
flattenSeparator | text | 平坦化モードのキー区切り文字(デフォルト .、_ / - などに変更可) |
wrapperClass | text | レスポンシブラップ <div> のカスタム CSS class(上級者向け) |
セルタイプ認識ハイライトルール早見表
本ツールは JSON 値の JavaScript タイプに基づいて異なる色を自動適用し、データタイプの素早い識別を可能にします:
| JS タイプ | 判定方法 | 適用スタイル | 出力例 |
|---|---|---|---|
null / undefined | val === null || val === undefined | color: #9ca3af; font-style: italic; プレースホルダーテキストを表示(カスタマイズ可) | <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 (平坦化モード) | type === 'object' + 平坦化モードでパスにより取得 | ネストオブジェクトをパスでアトミック値として取得 | user.name → 'Alice' |
object / array (他のモード) | typeof val === 'object' | JSON.stringify 後にエスケープして 50 文字に切り詰め、紫色のイタリック + title ホバーで完全 JSON 表示 | <span style="color:#7c3aed;font-style:italic;" title="...">{"id":1…</span> |
string | その他 | デフォルトテキストカラー #4b5563 | Jennifer Martinez |
Privacy & Security
本 JSON→HTML ツールは、すべての JSON 解析、ネスト平坦化、HTML 生成、コピー、ダウンロード操作を JavaScript によってブラウザ内のみで実行します。入力された JSON データと生成された HTML コードはサーバーにアップロードされず、ログ記録、キャッシュ、クラウド保存も一切行われません。未公開の API レスポンスや内部ビジネスフィールドを含む機密 JSON でも安心して使用でき、ページを閉じるとすべてのデータが消去されます。
Authoritative References
- JSON 圧縮
- CSV to JSON
- JSON から CSV
- JSON Diff
- JSON Escape / Unescape
- JSONフラット化
- JSON フォーマッター
- JSON 生成
- JSONPath オンラインクエリ
- JSON マージ
- JSON 修復
- JSON Schema バリデーター
- JSONソート
- JSON Stringify
- JSONをHTMLに変換
- JSONからJavaへ
- JSON から Markdown
- JSON を SQL に変換
- JSON から TOML へ変換
- JSONをTypeScriptに変換
- XML を JSON に変換
- JSONをXMLへ変換
- YAML を JSON に変換
- JSON → YAML 変換
- JSON から Go へ
- JSON から Rust
- JSON から Swift
- JSON から C#
- JSON から C++
- JSON を PHP に
- JSON から Python