UltKit

JSONをCSVに変換

APIのレスポンス、アプリのエクスポート、ログファイルをJSONから行と列の表に変換できます。.json、.jsonl、.ndjsonファイルをアップロードすると、1レコード1行のCSVをダウンロードできます。

データ変換

またはCSV, TSV, TXT … ファイルをここにドロップ ·

1ファイルあたり最大95 MB· 最大20ファイルまで· 30分後に削除

出力

ファイルは当社のサーバーで処理され、30分後に削除されます。

このツールの使い方

  1. 1

    JSONデータをアップロード

    オブジェクトの配列、または1行に1オブジェクトのJSON Linesを含むファイルを追加します。最大20ファイル、1ファイルあたり95 MBまで対応しています。

  2. 2

    CSVの設定を確認

    文字コードではBOM付きUTF-8があらかじめ選択されており、Windows版Excelでもアクセント付き文字が正しく読み込まれます。Excelがセミコロン区切りを想定している場合は区切り文字をセミコロンに変更してください。厳密なインポート先に渡す場合はすべての値を引用符で囲むをオンにします。

  3. 3

    変換してダウンロード

    CSVに変換を押します。ヘッダー行にはレコード内で見つかったすべてのキーが並びます。ファイルを開くか、CSVに対応している場所へインポートしてください。

JSONからCSVへの変換は、レコードのリストを表にします。各オブジェクトが1行、各キーが1列になり、入れ子のフィールドはそれぞれ独立した列に展開されます。

JSONをCSVに変換する理由

JSONはWebサービス同士がやり取りするための形式です。受注システム、決済サービス、分析API、フォームビルダーはいずれもデータをJSONで出力し、MongoDBやFirebaseなどのNoSQLデータベースもJSONに近い形でドキュメントを保存します。プログラムには理想的ですが、それ以外の人には扱いにくい形式です。5 MBのJSONファイルをテキストエディタで開いても、波括弧の壁にしか見えません。

CSVはその逆のトレードオフです。入れ子も型も表現できませんが、あらゆるスプレッドシート、BIツール、CRMのインポート、データベースのローダーで読み込めます。変換すれば、運用担当者は注文一覧をピボットテーブルに入れられ、データアナリストはAPIで取得したデータをSQLテーブルに移せ、サポートリーダーは絞り込んだエクスポートを同僚と共有できます。元データがXMLの場合は、XMLをCSVに変換でタグに対して同じフラット化ができます。

ネストしたJSONをCSVに変換:フラット化の仕組み

フラット化正規化 · 入れ子の解除
入れ子のオブジェクトを、各値までのパスを名前にした同じ行の追加列として書き出すことです。たとえば {"customer":{"city":"Austin"}} は、Austin を値に持つ customer.city 列になります。
APIレスポンスの注文2件をフラット化した例
[{"id":5012,"total":42.9,"paid":true,"customer":{"name":"Ada Okafor","city":"Austin"}},
 {"id":5013,"total":18,"paid":false,"customer":{"name":"Lin Wei","city":"Toronto"}}]

id,total,paid,customer.name,customer.city
5012,42.9,true,Ada Okafor,Austin
5013,18,false,Lin Wei,Toronto

JSONの種類と表形式の出力

from ↓ · to →CSVTSVXLSX
JSONJSON to CSV: yesJSON to TSV: yesJSON to XLSX: yes
JSONLJSONL to CSV: yesJSONL to TSV: yesJSONL to XLSX: yes
NDJSONNDJSON to CSV: yesNDJSON to TSV: yesNDJSON to XLSX: yes
YAMLYAML to CSV: yesYAML to TSV: yesYAML to XLSX: yes
XMLXML to CSV: yesXML to TSV: yesXML to XLSX: yes
supported not offeredJSON LinesとNDJSONは1行に1つのJSONオブジェクトを持つ形式で、BigQueryや多くのログツールのエクスポート形式です。

レコード内のリストは、フラットな1行にきれいに収められない唯一の要素です。明細が5件ある注文は、実際には注文と明細の2つの表になります。そのリストが重要な場合は、配列を別のJSONファイルとして取り出して個別に変換してください。そうすれば、各明細が注文IDとともに1行ずつになります。

JSONとCSVの形式の基礎知識

JSON

JavaScriptオブジェクト表記

JSONは構造化データ用の軽量なテキスト形式で、2000年代初めにDouglas Crockfordが広め、RFC 8259とECMA-404として標準化されました。オブジェクト、配列、文字列、数値、真偽値、nullを、シンプルで読みやすい構文で表現します。ウェブAPI、設定ファイル、ほぼあらゆるプログラミング言語でのアプリ間のデータ交換における標準的な形式です。コメント、日付、スキーマは標準では含まれず、深くネストした大きなファイルはビューアなしでは読みにくくなります。

圧縮方式
–
透過
–
アニメーション
–
登場時期
2001 · Douglas Crockford
JSON 変換

CSV

CSV(カンマ区切り値)

CSV は表形式のデータをプレーンテキストで表す形式で、1行が1つの行にあたり、列はカンマで区切ります。コンピューターの初期から使われており、RFC 4180 に記述がありますが、セミコロンやタブで区切る変種や、異なる文字コードを使うものも多くあります。ほとんどの表計算ソフト、データベース、分析ツールで読み込みと書き出しができるため、システム間でデータをやり取りする際の標準的な形式です。CSV に保存されるのは値だけで、数式、書式、複数のシート、データ型は含まれません。

圧縮方式
–
透過
–
アニメーション
–
登場時期
–
CSV 変換

APIやアプリから取得したデータを、コードではなくスプレッドシートで作業する人が分析・共有・インポートする必要があるときに、JSONをCSVに変換します。

JSON CSV変換のよくある質問

どのような構造のJSONならCSVにきれいに変換できますか?

ほとんどのキーが共通するオブジェクトの配列です。例: [{"id":1,"name":"Ada"},{"id":2,"name":"Lin"}]。各オブジェクトが1行、各キーが1列になります。最上位が単一のオブジェクトで、レコードがひとつのプロパティ内にある形式でも、そのレコードがリストになっていれば変換できます。

レコードによってキーがあったりなかったりする場合は?

ヘッダーはすべてのキーの和集合になるため、一部のレコードにしかないフィールドにも列が作られます。そのフィールドがないレコードでは、該当セルは空になります。任意項目が省略されるAPIのデータでは、よくあることです。

true、false、nullはどのように出力されますか?

CSVにはデータ型がなく、テキストだけです。真偽値は true と false という単語、数値は数字、null は空のセルとして書き出されます。インポート先が true / false ではなく 1 / 0 を必要とする場合は、変換後にスプレッドシートで置き換えてください。

ExcelでCSVが文字化けするのはなぜですか?

Windows版Excelは、ファイルの先頭にバイトオーダーマークがないと、CSVを地域のコードページで読み込もうとします。そのため、このページではBOM付きUTF-8で書き出しています。LinuxのツールやデータパイプラインではBOMなしのUTF-8が好まれることもあるので、その場合は文字コードを切り替えてください。

JSONデータはCSVとExcelファイルのどちらに変換すべきですか?

次の作業が別システムへのインポート、データベースへの読み込み、スクリプト処理ならCSVが向いています。人が読んだり編集したりするならワークブックがおすすめです。JSONをExcelに変換なら型が保たれ、郵便番号のような列をExcelが開くときに推測し直すこともありません。

CSVから元のJSONに戻せますか?

戻せるのはフラット化された形だけです。配列や深い入れ子は列やテキストに展開されており、数値か文字列かという型も記録されないため、往復するとフラットなオブジェクトになります。元の構造が必要になりそうなら、元のJSONを保管しておいてください。