JSON を JSONL にフラット化
ネストされた JSON オブジェクトと配列を JSONL(JSON Lines)形式に抽出・フラット化。各レコードが個別の行になります。100% クライアントサイド。
入力 JSON
.json ファイルをここにドロップ、またはクリックして参照
.json, .txt に対応
入力 JSON
.json ファイルをここにドロップ、またはクリックして参照
.json, .txt に対応
出力 JSONL
ネストされた JSON を貼り付けまたはドロップして JSONL にフラット化
JSON フラット化とは?
JSON フラット化は、深くネストされた JSON 構造をフラットな行単位形式に変換するプロセスです。ネストされたオブジェクトキーはドット表記(例:address.city)に変換され、オブジェクトの配列は展開されて各要素が JSONL 形式の独自のレコードになります。
これは、複雑なネストを持つ API レスポンスやデータベースエクスポートがあり、機械学習トレーニング、CSV 変換、または 1 行に 1 レコードを期待するストリーミングデータパイプライン用にフラットな表形式に変換する必要がある場合に特に便利です。
配列をフラット化する 2 つの方法 — 出力先に応じて選択
ネストされたオブジェクトは、キーをドットで連結するという明確な方法でフラット化できますが、配列では方針を選ぶ必要があります。適切な方法は、フラット化したデータの出力先によって異なります。
| 方法 | [{"sku":"A"},{"sku":"B"}] の変換結果 | 適したケース |
|---|---|---|
| インデックス展開 | items.0.sku = A, items.1.sku = B — 1 行のまま列が増える | 行数を入力と同じに保つ必要があり、配列が短く上限も決まっている |
| 行へ展開 | それぞれに items.sku を持つ 2 行 — 行が増え、列は安定する | 各配列要素を独立したレコードとして SQL や分析システムへ渡す |
| JSON 文字列として保持 | items = "[{\"sku\":\"A\"},...]" — 内容を解釈しない 1 セル | 配列は後で再解析するメタデータであり、現時点ではクエリ対象にしない |
JSON を JSONL にフラット化する方法
JSON を JSONL にフラット化すると、ネストされた構造からレコードを抽出し、各レコードを個別の JSONL 行に変換します。JSON にオブジェクトの配列が含まれている場合、各配列要素が 1 行になります。ネストされたオブジェクトキーはドット表記にフラット化されます。
当ツールはブラウザ内で完全に動作します。データがサーバーに送信されることはありません。ネストされた JSON を貼り付けるかファイルをドラッグ&ドロップすると、フラット化された JSONL 出力が即座に表示されます。親レベルのフィールドは各レコードに自動的にマージされます。
出力は 1 行に 1 つのコンパクトな JSON オブジェクトを含む有効な JSONL です。結果をクリップボードにコピーするか、.jsonl ファイルとしてダウンロードして、機械学習、データパイプライン、データベースインポートに使用できます。
変換前と変換後
実際に近いネストされたレコードと、インデックス展開でフラット化した形式です。区切り文字の選択が重要です。ドットを使う場合、元データに "config.debug" というリテラルキーがあると、フラット化後のパス config.debug と衝突します。キーにドットが含まれる場合は、区切り文字をアンダースコアに変更してください。
// 変換前 — ネストされたレコード:{"user": {"id": 7, "address": {"city": "Osaka", "zip": "530-0001"}}, "tags": ["vip", "beta"]}// 変換後 — ドット区切りでフラット化し、配列をインデックス展開:{"user.id": 7, "user.address.city": "Osaka", "user.address.zip": "530-0001", "tags.0": "vip", "tags.1": "beta"}
フラット化は CSV や Excel へエクスポートする前の標準的な前処理です。これらは表形式であり、ネストを表現できません。深くネストされた入力は非常に横長の出力になる可能性があるため、ファイル全体を処理する前にサンプルをフラット化し、列数が妥当か確認してください。
一般的な使用例
API レスポンス処理
ネストされた API レスポンスを JSONL にフラット化して、データパイプラインでの解析、ロギング、ダウンストリーム処理を容易にします。
ETL データ変換
複雑な JSON エクスポートからレコードを抽出し、データベースやデータウェアハウスにロードするために JSONL にフラット化します。
ML データセット準備
ネストされた JSON データセットを、OpenAI、Hugging Face、その他の ML トレーニングプラットフォームで必要なフラットな JSONL レコードに変換します。
ログと分析処理
ネストされたメタデータを含む構造化ログファイルを JSONL にフラット化して、grep、jq、Elasticsearch などのツールで分析します。
テストデータ生成
複雑な JSON API モックレスポンスを個別の JSONL レコードにフラット化し、自動テストスイートのテストフィクスチャとして使用。
データベース移行
MongoDB や CouchDB からのネストされたドキュメント形式の JSON エクスポートをフラットな JSONL レコードにフラット化し、PostgreSQL などのリレーショナルデータベースにインポート。
よくあるエラーと解決策
フラット化するレコードが見つからない
このエラーは、入力 JSON がプリミティブ値(文字列、数値)または空のオブジェクト/配列の場合に発生します。ツールはレコードを抽出するためにオブジェクトまたはオブジェクトの配列が必要です。JSON に少なくとも 1 つのキー値ペアを持つオブジェクトが含まれていることを確認してください。
ドット表記のキー競合
JSON のトップレベルに "user.name" というキーがあり、同時にネストされた {"user":{"name":"value"}'} もある場合、両方が同じドット表記キーにフラット化されます。ネストされた値がトップレベルの値を上書きします。フラット化する前に競合するキーの名前を変更してください。
JSON の循環参照
標準 JSON は循環参照を含むことはできませんが、一部の JSON ジェネレーターは非常に深くネストされた構造を生成する場合があります。ツールは適切な深さまでの深いネストを処理しますが、構造が安全な制限を超える場合はフラット化を停止します。
よくある質問
この Flatten JSON ツールは何をしますか?
ネストされたオブジェクトキーはドット表記に変換されます。例えば、{"user":{"address":{"city":"NYC"}'}'} は {"user.address.city":"NYC"} になります。これにより、深くネストされたデータがフラットなキー値ペアとしてアクセス可能になります。
深くネストされた JSON を JSONL にフラット化できますか?
JSON にオブジェクトの配列が含まれている場合、各オブジェクトが個別の JSONL 行になります。プリミティブ(文字列、数値)の配列は、フラット化された出力内で JSON 文字列としてシリアライズされます。ツールは展開するメイン配列を自動的に検出します。
このツールは JSON ファイルをアップロードしますか?
はい。すべてのフラット化はブラウザ内でローカルに行われます。データがサーバーに送信されることはありません。JSON コンテンツはデバイスから離れることはありません。
どの配列をフラット化するか選択するにはどうすればよいですか?
はい。ツールはあらゆるレベルのネストを処理します。トップレベルのスカラーフィールドは各レコードにマージされ、ネストされたオブジェクトはドット表記を使用し、オブジェクトの最大の配列は個別の JSONL 行に展開されます。
スカラー(非オブジェクト)の配列要素はどうなりますか?
null 値はフラット化された出力でそのまま null として保持されます。JSON には undefined 型が存在しないため、undefined 値に遭遇することはありません。空のオブジェクトはフラット化しても何も生成されず(キーは生成されません)、空の配列は空の JSON 配列としてシリアライズされます。
結果を JSON に戻すにはどうすればよいですか?
現在、ツールは一度に 1 つの JSON 入力を処理します。複数のファイルをフラット化する場合は、1 つずつ処理してください。バッチ操作には、jq などのコマンドラインツールと本ツールを組み合わせて視覚的な確認に使用することを検討してください。
配列とオブジェクトが混在する JSON オブジェクトをフラット化できますか?
ツールは実際の JSON データで一般的に見られるネスト深度(通常 20 レベル以上)をサポートします。ハードコードされた深度制限はありませんが、極端に深いネストは出力で非常に長いドット表記キーを生成する可能性があります。
このツールが処理できる最大ファイルサイズは?
JSON to JSONL はトップレベル配列の各要素を個別の行に配置するだけです。Flatten JSON to JSONL はさらに進んで、ネストされた構造を展開し、ネストされたキーをドット表記に変換し、親レベルのフィールドを各レコードにマージします。深くネストされた JSON からレコードを抽出する必要がある場合にフラット化を使用してください。