mygems

JSONをCSVに変換

ツリー構造を、どこでも開ける表に。

  • 入れ子のオブジェクトを展開
  • 配列は保持または行に分割
  • レコードの配列を自動検出
  • アップロードなし

1.JSONを開く

JSONまたはJSON Lines。ここにドラッグするか、ファイルを選択してください。

またはJSONを貼り付ける

作った理由

JSONはツリーで、CSVは長方形です。そのため、どの変換ツールも入れ子の扱いを選ぶことになりますが、多くは黙って選んでしまいます。このツールは、その選択を見える形で行います。入れ子のオブジェクトはaddress.cityのようなドット区切りの列になり、配列は、行に展開するものを選ばない限り1つのセルにそのまま収まります。レコードは、ファイルの先頭ではなくAPIレスポンスの中にあっても見つけます。

できること

  • JSONの配列、単一のオブジェクト、1行に1レコードのJSON Linesを読み込めます。
  • `data`や`results`など、APIレスポンスの中にある配列を見つけ、どれがレコードかを選べます。
  • 入れ子のオブジェクトを、フィールドが最初に現れた順に、ドット区切りの列名に展開します。
  • 配列は1つのセルにJSONテキストとして残すか、1つの配列の各項目を、親のフィールドを繰り返して1行ずつに展開します。
  • ファイルまたは貼り付けたJSONを読み込み、ダウンロード前に表をプレビューできます。

すべてのレコードが同じフィールドを持たない場合

実際のJSONは、そうなっていることのほうが少ないものです。どれかのレコードに現れるフィールドはすべて列になり、そのフィールドがないレコードでは、そのセルが空になります。最初のレコードにたまたまなかったからといって、何かが捨てられることはありません。

よくある質問

入れ子のオブジェクトはどう扱われますか?
入れ子の各フィールドが、パスを名前にした独立した列になります。`{"address": {"city": "Lyon"}}`は、`address.city`という列になります。どれだけ深い入れ子でも、最終的に1階層の列になります。
配列はどうなりますか?
初期設定では、配列はJSONテキストとして1つのセルに残るので、行数はレコード数と一致します。展開する配列を選ぶと、その各項目が1行になり、レコードのほかの部分は横に繰り返されます。
JSONが配列ではなくオブジェクトです。使えますか?
使えます。レコードが`data`や`items`などのキーの中にある場合は、見つかったすべての配列を一覧にし、最も大きいものを初期選択にします。配列のない単一のオブジェクトは、1行の表になります。