JSON ⇄ CSV 変換ツール
すべてブラウザ内で動きます。ファイルやデータが外部に送られることはありません。
このツールについて
JSONを貼り付けるとCSVに、CSVを貼り付けるとJSONに変換します。オブジェクトの配列は見出し行付きの各行になり、ネストしたフィールドは address.city のようにドット記法で列に展開されます。逆方向では、ドット区切りの見出しからネストしたオブジェクトが再構築され、区切り文字は自動検出も手動指定もできます。
ネストしたデータはどう扱われる?
JSONはオブジェクトの中にオブジェクトを持てますが、CSVの1行はフラットな構造しか表現できません。JSONからCSVへ変換する際は、ネストしたオブジェクトのキーをドットでつないで1つの列名にします。たとえば {"address": {"city": "Lyon"}} は、値が Lyon の address.city という列になります。配列や1つのセルに収まらない値は、その場でJSON文字列として書き出されるので、列には分散しませんがデータ自体は失われません。
CSVからJSONへの変換ではこの逆をたどります。address.city という列名から、city フィールドを持つ address オブジェクトが再構築されます。各セルの値は型も判定され、空セルは null、true/false は真偽値、数字だけの文字列は数値、JSONの配列やオブジェクトのように見えるセルはそのままパースされます。それ以外は文字列として扱われます。区切り文字(カンマ、セミコロン、タブ、パイプ)は入力から自動判定されますが、判定がずれる場合は手動で指定できます。
JSONがオブジェクトのフラットな配列でない場合は?
JSON→CSV方向は、すべての要素がオブジェクトであるJSON配列を前提としています。それが行と列にきれいに対応する唯一の形だからです。トップレベルの値が配列でない場合や、配列の要素にオブジェクトでないものが混ざっている場合、ツールは変換を止め、どのインデックスで問題が起きたかを教えてくれます。レイアウトを推測して無理やり変換することはしません。単一のオブジェクトや、単なる数値、文字列の配列はそのままでは変換できないので、あらかじめオブジェクトの配列として整形しておく必要があります。これは多くのAPIがリスト形式のレスポンスを返す際にすでに採用している形でもあります。
データはどこかにアップロードされる?
されません。パースと変換はすべてブラウザ内のJavaScriptで完結し、貼り付けた内容がサーバーに送信されることはありません。そのため、スプレッドシートのエクスポートやデータベースのダンプ、顧客情報や社内IDを含むCSVファイルでも安心して使えます。
主な用途は、APIレスポンスをExcelやGoogleスプレッドシート用のCSVに変換する、エクスポートしたスプレッドシートをスクリプトやテスト用のJSONに変換する、あるいは別のツールに渡す前にデータを整えるといった場面です。CSV出力はRFC 4180に、JSONはMDNに記載された形式に従います。