分析と広告のためのCookie
分析と広告のためにCookieを使っており、どちらもGoogleに送られます。拒否しても、目に見える動作は何も変わりません。プライバシーポリシーを読む
JSON を CSV にすると、オブジェクトの配列がそのまま Excel や Google スプレッドシートで開ける表になります。入れ子になったオブジェクトはドット区切りの列名に展開され、`{"user":{"name":"a"}}` は `user.name` という列になります。全部あなたのブラウザーの中で処理されるので、API のレスポンスや顧客データがどこかに送られることはありません。
一度に100ファイルまで。フォーマットが混ざっていても構いません。
順番に変換し、まとめてZIPでダウンロードします。
JSON から CSV
JSON は API が返す形式で、CSV は人間が Excel や Google スプレッドシートで見る形式です。API のレスポンスをそのまま担当者に渡しても読めないので、この変換が挟まります。
ログの分析、注文データの棚卸し、外部サービスから取得した一覧を営業チームに渡すとき。どれもこの変換が実質的な起点です。
一番素直な入力はオブジェクトの配列です。`[{"id":1,"name":"a"},{"id":2,"name":"b"}]` なら、キーが列の見出しになり、それぞれのオブジェクトが 1 行になります。これがほとんどの API レスポンスの形です。
配列の中の 1 つ目のオブジェクトが持つキーだけでなく、あとの行が持つキーも列として拾われます。3 行目にしか出てこないフィールドがあっても、その列は用意され、それ以外の行では空欄になります。
`{"users":[{"id":1},{"id":2}]}` のように、配列を 1 つのキーで包んだ形は API レスポンスでよくある書き方です。この形は自動で認識され、包んでいる `users` というキーを気にせず、中の配列がそのまま表になります。
包んでいるキーが 2 つ以上あったり、値が配列でなかったりする場合は、この特別扱いは働きません。オブジェクトそのものが 1 行として書き出されます。
`{"user":{"name":"a","address":{"city":"東京"}}}` のように何段にも入れ子になった値は、葉にあたる値ごとに 1 つの列になり、そこまでの経路がドットでつながった名前になります。この例なら `user.name` と `user.address.city` の 2 列です。
配列も同じしくみで展開され、添字がドットの区切りに使われます。`{"tags":["a","b"]}` は `tags.0` と `tags.1` という 2 つの列になります。行によって配列の長さが違えば、列の数もその分だけ増減します。
数値と真偽値はすでに JSON の側で型を持っているので、CSV に書き出すときに推測は入りません。`123` は `123` のまま、`true` は `true` のまま書かれます。読み込むときの型推定とは違う話です。
気をつけたいのは、非常に大きな整数です。JSON はテキストとして解析されるとき JavaScript の数値型を経由するため、2 の 53 乗を超える桁の ID は、変換前の時点ですでに末尾が丸まっていることがあります。SNS の投稿 ID のような長い数値の列は、値が正しいかどうか出力後に確認してください。
JSON の `null` は空欄として書かれます。行によってキー自体が存在しない場合も、その列は用意されたうえで空欄になります。CSV の側からは、この 2 つを区別する方法がありません。
その区別に意味があるデータなら、CSV に渡す前に「値がなかった」ことを示す固有の文字列を JSON の側に入れておくほかありません。表形式が持てる情報の量は、もとの JSON より少ないと考えておくのが安全です。
CSV そのものは単なるテキストで、数値も文字列として書かれます。ただし Excel は CSV を開くとき、数字に見える列を自動的に数値として解釈するので、長い ID の列が指数表記になったり、先頭の 0 が消えたりすることがあります。
これは Excel 側の表示の癖であって、この変換機が値を書き換えているわけではありません。IDや品番の列を守りたいときは、Excel の「データの取り込み」機能でその列を文字列として指定して開いてください。
この変換は全部あなたのブラウザーの中で行われます。API のレスポンスや顧客データを含む JSON をどこかのサーバーにアップロードすることはありません。ネットワークタブを見れば、ファイルを運ぶ通信が一切ないことが確認できます。
1 度に 100 個までのファイルをまとめて置け、1 ファイルあたり 100 MB まで扱えます。終わったファイルから順に、まとめて 1 つの ZIP として受け取れます。
| JSON | CSV | |
|---|---|---|
| 正式名称 | JavaScript Object Notation | Comma-Separated Values |
| 拡張子 | .json | .csv |
| メディアタイプ | application/json | text/csv |
| 最初の公開 | 2001 | 1972 |
| 仕様 | RFC 8259 | RFC 4180 |
| ライセンス | オープン標準 | オープン標準 |
| 現在の位置づけ | 現行 | 現行 |
| ブラウザで開けるか | すべてのブラウザ | 対応なし |
| 代わりに検討される形式 | XML, YAML, NDJSON | XLSX, Parquet |
CSV を読めるブラウザーはありません。その点では、2 つのうち通用する場所が狭いのはこちらです。送る前に、受け取る側がこれを受け付けるかどうか確かめてください。
開くプログラムが重なりません。JSON はVisual Studio Code、jq、Postmanで、CSV はMicrosoft Excel、LibreOffice Calc、pandasで開きます。結果を渡す相手には後者のどれかが要ります。
JSON は 2001 年に登場しました。 RFC 8259 で規定されています。ファイルが、それを書いた道具より長く生きなければならないなら、この一点には値打ちがあります。
CSV は 1972 年から使われています。規定は RFC 4180 です。Microsoft Excel、LibreOffice Calc、pandasがこの形式を読めます。
CSV は 1972 年、JSON は 2001 年に登場しました。人に渡すならたいてい古いほうが安全で、新しいほうは同じ仕事をより少ないバイト数で片づけます。
いいえ。この変換は完全にブラウザーの中で行われるので、ファイルが端末から出ることはありません。ご自分で確かめられます。開発者ツールのネットワークタブを開いて、何か変換してみてください。ページそのものと、このサービスの費用をまかなっている分析・広告のリクエストは見えますが、あなたのファイルを運んでいるリクエストはひとつもありません。
はい。アカウントも透かしもなく、消費される 1 日の割り当てもありません。お使いの機械の上で動くので、何度でも戻ってきていただけます。ブラウザーが扱えるのは 100 MB までのファイルで、一度に 100 本です。
JSON と CSV は、内容の表し方が根本から違います。ですからこの変換は複製ではなく再構築です。誠実ではありますが、1 バイトも同じというわけではありません。 入れ子のオブジェクトは平らにされて列になります。深く入れ子になったデータは形を失います。
CSV を読めるブラウザーはありません。その点では、2 つのうち通用する場所が狭いのはこちらです。送る前に、受け取る側がこれを受け付けるかどうか確かめてください。