高度な機能
このページでは、複雑なデータ変換シナリオに対応する 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 ファイルの場合:
- バッチ処理: データをチャンク単位で処理
- メモリ管理: ブラウザのメモリ使用量を監視
- 段階的ロード: データを増分で読み込む
ブラウザ互換性
本ツールは、以下を含む主要なモダンブラウザで動作します。
- 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 に取り込む手順:
- ツールで JSON を CSV に変換する
- CSV データをコピーする
- スプレッドシートアプリに貼り付ける
- 必要に応じて “Text to Columns” を使う
エラーハンドリング
検証エラー
不正な JSON:
- 括弧や波括弧の欠落
- 末尾の余分なカンマ
- エスケープされていない引用符
- 不正なエスケープシーケンス
データ構造の問題:
- 空の配列
- オブジェクト構造の不一致
- 循環参照(適切に処理されます)
復旧戦略
- JSON の検証: オンラインの JSON バリデータを利用する
- 段階的テスト: 小さなサンプルでテストする
- データのバックアップ: 元の JSON ファイルを保持する
- バージョン管理: データ構造の変更を追跡する
ベストプラクティス
データ準備
- JSON を検証する: 変換前に入力が有効か確認する
- 構造を揃える: オブジェクト構造を統一する
- null の扱いを決める: 欠損値の表現方法を定義する
- サンプルで確認する: 小規模データで出力を確認する
出力の最適化
- 適切な区切り文字を選ぶ: 取り込み先の要件に合わせる
- 文字コードを選ぶ: 適切なエンコーディングを使う
- ヘッダーを管理する: 分かりやすさのためにヘッダーを含める
- 引用符を処理する: 複雑なデータではエスケープを有効にする
ワークフローへの組み込み
- 自動化: ブラウザ自動化でバッチ処理を行う
- スケジューリング: 定期的なエクスポートを設定する
- モニタリング: 変換成功率を追跡する
- ドキュメント化: 変換仕様を維持する