w

高度な機能

このページでは、複雑なデータ変換シナリオに対応する JSON → CSV 変換ツールの高度な機能を紹介します。

複雑なデータの扱い

ネストされたオブジェクトのフラット化

ツールはドット記法を使って、ネストされた JSON 構造を自動的にフラット化します。

入力:

[
  {
    "user": {
      "personal": {
        "name": "John Doe",
        "age": 30
      },
      "contact": {
        "email": "john@example.com",
        "phone": "123-456-7890"
      }
    },
    "orders": [
      { "id": 1, "amount": 99.99 },
      { "id": 2, "amount": 149.99 }
    ]
  }
]

出力(フラット化):

user.personal.name,user.personal.age,user.contact.email,user.contact.phone,orders
John Doe,30,john@example.com,123-456-7890,"[{""id"":1,""amount"":99.99},{""id"":2,""amount"":149.99}]"

配列の扱い

オブジェクト内の配列は、構造を保持するために JSON 文字列として変換されます。

入力:

[
  {
    "name": "Product A",
    "tags": ["electronics", "gadget", "portable"],
    "specifications": {
      "weight": "500g",
      "dimensions": [10, 20, 30]
    }
  }
]

出力:

name,tags,specifications.weight,specifications.dimensions
Product A,"[""electronics"",""gadget"",""portable""]",500g,"[10,20,30]"

高度な設定

カスタム区切り文字

標準的な選択肢以外にも、任意の文字を区切り文字として使用できます。

  • カンマ (,) - 標準 CSV
  • セミコロン (;) - 欧州形式
  • タブ - TSV 形式
  • パイプ (|) - カスタム区切り
  • カスタム文字 - 任意の 1 文字

文字コードの考慮

UTF-8: 特殊文字を含む多言語データに最適

name,description
Café,Espresso with café au lait
北京,Capital of China

UTF-16: 16 ビット Unicode を要求するシステム向け
GBK: 中国語テキスト処理向け

引用符のエスケープ戦略

標準のエスケープ(推奨):

name,description
"Smith, John","He said ""Hello World"" to everyone"

エスケープなし(注意して使用):

name,description
Smith John,He said Hello World to everyone

データ型の扱い

自動型判定

変換ツールは、出力でデータ型をできるだけ保持します。

入力:

[
  { "id": 1, "name": "Product A", "price": 99.99, "active": true, "tags": null },
  { "id": 2, "name": "Product B", "price": 149.99, "active": false, "tags": "electronics" }
]

出力:

id,name,price,active,tags
1,Product A,99.99,true,
2,Product B,149.99,false,electronics

特殊値の扱い

  • null 値: 空文字列に変換
  • undefined 値: 空文字列に変換
  • boolean 値: true/false のまま保持
  • 数値: 数値として保持
  • 文字列: 必要に応じて適切にエスケープ

パフォーマンス最適化

大規模データセットの扱い

大きな JSON ファイルの場合:

  1. バッチ処理: データをチャンク単位で処理
  2. メモリ管理: ブラウザのメモリ使用量を監視
  3. 段階的ロード: データを増分で読み込む

ブラウザ互換性

本ツールは、以下を含む主要なモダンブラウザで動作します。

  • Chrome 60+
  • Firefox 55+
  • Safari 12+
  • Edge 79+

統合例

API レスポンスの処理

API レスポンスを CSV に変換して分析に利用します。

// Fetch data from API
fetch("/api/users")
  .then((response) => response.json())
  .then((data) => {
    // Use the converter tool to transform to CSV
    const csvData = convertToCSV(data);
    downloadCSV(csvData, "users.csv");
  });

データベースのエクスポート

データベースのクエリ結果を変換します。

-- SQL query result as JSON
SELECT json_agg(row_to_json(t)) FROM (
  SELECT name, email, created_at FROM users
) t;

スプレッドシート連携

CSV を Excel / Google Sheets に取り込む手順:

  1. ツールで JSON を CSV に変換する
  2. CSV データをコピーする
  3. スプレッドシートアプリに貼り付ける
  4. 必要に応じて “Text to Columns” を使う

エラーハンドリング

検証エラー

不正な JSON:

  • 括弧や波括弧の欠落
  • 末尾の余分なカンマ
  • エスケープされていない引用符
  • 不正なエスケープシーケンス

データ構造の問題:

  • 空の配列
  • オブジェクト構造の不一致
  • 循環参照(適切に処理されます)

復旧戦略

  1. JSON の検証: オンラインの JSON バリデータを利用する
  2. 段階的テスト: 小さなサンプルでテストする
  3. データのバックアップ: 元の JSON ファイルを保持する
  4. バージョン管理: データ構造の変更を追跡する

ベストプラクティス

データ準備

  1. JSON を検証する: 変換前に入力が有効か確認する
  2. 構造を揃える: オブジェクト構造を統一する
  3. null の扱いを決める: 欠損値の表現方法を定義する
  4. サンプルで確認する: 小規模データで出力を確認する

出力の最適化

  1. 適切な区切り文字を選ぶ: 取り込み先の要件に合わせる
  2. 文字コードを選ぶ: 適切なエンコーディングを使う
  3. ヘッダーを管理する: 分かりやすさのためにヘッダーを含める
  4. 引用符を処理する: 複雑なデータではエスケープを有効にする

ワークフローへの組み込み

  1. 自動化: ブラウザ自動化でバッチ処理を行う
  2. スケジューリング: 定期的なエクスポートを設定する
  3. モニタリング: 変換成功率を追跡する
  4. ドキュメント化: 変換仕様を維持する
このページは役に立ちましたか?