Command Palette

Search for a command to run...

JSON から CSV: API レスポンスを人々が開くことができるスプレッドシートに変換します

JSON から CSV: API レスポンスを人々が開くことができるスプレッドシートに変換します

T
Toolz Team
|Aug 23, 2026|13 分読んでください

データツール コレクションの一部

SaaS製品に関する私の仕事の半分は、システムからデータを取り出して、コードを書かない人の手に渡ることです。 創業者はスプレッドシートにmonth' sのサインアップを望んでいます。 サポートリードはチケットをExcelで並べ替えたいと考えています。 会計士は注文をaとして望んでいます .csv 彼らはピボットできます データはJSONとして生きています なぜならそれがAPIが返すものであり タスクは毎回同じだからです このオブジェクトの配列を 人間が開ける列や行に変えるのです そのために使い捨てのスクリプトを書くことに飽きてしまったのです まさにToolzが JSONからCSVへのコンバーター 存在する。 と述べ、その回心について、人をつまずかせる部分も含めて、このガイドで考える。

tl;dr: JSONからCSVへのコンバータはオブジェクトの配列を取り、コンマ区切りの行として書き込む、プロパティごとに1 列、スプレッドシートで開くことができる ハードパーツは、コンマを含む異なるフィールド、ネストされたオブジェクト、値を持つレコードである 優れたコンバータは、すべてのキーの和集合からヘッダーを構築し、ネストされたオブジェクトをドット表記列にフラット化し、RFC 4180 ごとにフィールドをエスケープする Toolzツールは、クライアント側の3 つすべてを実行し、ファイルがExcelでクリーンに開くように、デリミタとCRLF行の語尾を選択できます。

私はlaravelとreactを基盤としているので、jsonは私のネイティブフォーマットであり、csvは私がエクスポートする共通語です。 興味深いエンジニアリングは、すべてのオブジェクトが同じ3 つのキーを持つハッピーパスではありません; それは生産データの厄介な現実であり、それはほとんどのコンバータが静かに間違ったことをする場所です。

JSONからCSVへのコンバーターとは何ですか?

JSON から CSV へのコンバーターは、オブジェクトの JSON 配列を読み取ってテーブルを生成します。プロパティ名はヘッダー行になり、各オブジェクトはその下に 1 つのデータ行になります。API エンドポイント、データベース クエリ、またはエクスポートされたドキュメントからの応答を貼り付け、Excel、Google スプレッドシート、または番号で直接開くことができるファイルを取得します。これは、交換するフォーマット マシンと、人々が実際に作業するフォーマットとの間の橋渡しです。

理想的な入力は、すべて同じキーを共有するフラット オブジェクトの配列です。なぜなら、それは長方形のテーブルに完全にマッピングされるからです。実際のデータがこれほど整然としていることはめったにありません。オブジェクトがフィールドを欠落し、値が 2 レベルの深さにネストされ、一部のエントリがスカラーではなく配列である。専用コンバータの全体の値は、エラーを投げたりデータをドロップしたりするのではなく、それらのケースごとに定義された賢明な答えを持っていることです。 JSON が縮小されている場合、または最初に検査したいだけの場合は、実行します JSON フォーマッタ 変換する前に印刷して検証します。

フィールドの異なるオブジェクトをどのように処理しますか?

これはナイーブコンバータを壊す最初のものであり、実稼働JSONには均一なオブジェクトがほとんどないため、理解する価値があります。 arrayに1 つのオブジェクトがあるとします idname、そして email、そして次は とともに idname、そして phone. CSVにはどのような列を設けるべきですか?

正解は、すべてのオブジェクトにわたるすべてのキーの和集合であり、各キーが最初に表示される順序で保持されます。したがって、ヘッダーは になります idnameemailphone、そしてそれらのキーの1 つを欠いているオブジェクトは、単にその列に空のセルを取得します 何もドロップされず、テーブルは長方形のままです 最初のオブジェクトのキーのみを読み取る怠惰なコンバーターは、静かに を失います phone 列は完全に、それとすべての電話番号を取ります.toolzコンバータは、ヘッダを構築するためにすべての行をスキャンします, そう不均一なレコードは、まだきれいな、完全なテーブルに整列することができますこの1 つの動作は、あなたが信頼し、静かにデータを省略するものとの違いです 手遅れになるまで誰も気づかないエクスポート.

ネストされたオブジェクトや配列はどうでしょうか?

JSONはツリーです; CSVはグリッドです.一方を他方にフラット化することは2 番目の場所のコンバータが発散し、正しい選択はファイルをどうするつもりかによって異なります。

ネストされたオブジェクトの場合、2 つの合理的なオプションがあり、ツールは両方をサポートします。 flattening on を使用すると、ネストされたオブジェクトはドット表記列に展開されます { "address": { "city": "Paris", "zip": "75001" } } となる address.city コラムとan address.zip 列。ネストされたフィールドが人が読み取って並べ替える実際のデータである場合に必要なものです。フラット化すると、ネストされたオブジェクト全体が 1 つのセル内にコンパクトな JSON 文字列として記述されます。これは、構造が不透明でそのまま保存する必要がある場合に優れています。

リストを1 つのセルに絞り込む 唯一の正しい方法がないので、配列は独自の選択権を得ます。 arrayをJSONとして保存し、維持することができます ["a","b"] 無傷なので完全に往復することも、セパレーターで要素を結合して、より人間が読みやすいものにすることもできます a; b。 jsonは、ファイルがプログラムによって読み戻されるときと、人がオーディエンスで可読性が勝ったときの結合形式を使用します。以下の表は、決定をまとめたものです。

入力形状 平らにしてください 平らにします
{"user":{"name":"Ada"}} user.name = を Ada user = を {"name":"Ada"}
{"tags":["x","y"]} (JSONとして配列) tags = を ["x","y"] tags = を ["x","y"]
{"tags":["x","y"]} (配列が結合されました) tags = を x; y tags = を x; y
オブジェクトにキーがありません その列の空のセル その列の空のセル

なぜコンマや引用符がエスケープする必要があるのですか?

これは無視すると 誰かが開いて列がすべて間違うまで うまく見えるファイルを生成するルールです CSVはフィールドを区切るためにカンマを使います では値にカンマが含まれているとどうなるでしょう? それとも二重引用符か? それとも複数行ノートからの改行か?

RFC 4180、CSVが標準に最も近いものは、これに正確に答えます: 区切り文字、二重引用符、または改行を含むフィールドは二重引用符で包まれなければならず、そのフィールド内の二重引用符は2 倍になるので、値 Baker, Smith & Co. と表記される "Baker, Smith & Co."、そして She said "hi" なる "She said ""hi""". Toolz コンバーターは、これらのルールをすべてのセルに自動的に適用します。そのため、アドレス、千の区切り文字を含む価格、またはフリーテキストのコメントが、余分な列に粉砕されるのではなく、単一の無傷のフィールドとしてスプレッドシートに移動しても生き残るのです。

Excelでファイルをきれいに開くにはどうすればよいですか?

CSVはCSVだと思うでしょうが Windows上のExcelは 1つのことで 騒がしく思っています 人々を捕まえるのです 行末です これを正しく理解すると 完璧に開くファイルと 行がマージまたは分割されたように 表示されるファイルの違いです。

Windows 上の Excel は、各行がキャリッジ リターンと改行フィード、CRLF ペアで終了することを期待しています。 Unix スタイルの LF 行末を含むファイルを渡すと、特に引用符で囲まれたフィールドに独自の改行が含まれている場合、行が途切れる箇所で読み間違える可能性があります。コンバーターでは LF または CRLF を選択できるため、視聴者が Windows 上の Excel で、他のほとんどのツールの LF および Google スプレッドシートの場合は CRLF を選択できます。区切り文字も選択できます。カンマはデフォルトですが、カンマが小数点区切り文字であるヨーロッパのロケールではセミコロンが一般的で、データ自体がカンマでいっぱいの場合はタブまたはパイプが便利です。区切り文字と行末を宛先に一致させることは、後でサポート チケットを保存する 5 秒の選択です。

機密性の高いJSONをオンラインで変換しても安全ですか?

はい、どれもブラウザから離れていないため JSONの解析から各フィールドのエスケープ、行の結合まで、変換のすべての部分は、自分のマシンでJavaScriptで実行されます アップロードもサーバーもないため、何も送信、ログ、または保存されません ネットワークタブを開き 、 「変換」をクリックします 要求が消えないことが表示され、ページがロードされると、ツールはインターネットが切断された状態で動作します。

これは、JSON にとって特に細かい点ではありません。 JSON は API レスポンスと内部システムが話す内容であるためです。変換する配列には、ユーザー レコード、注文データ、アクセストークン、またはその他のバックエンドが返すものが保持される可能性があります。ペイロードをリモート サーバーに出荷するコンバーターは、プライベート レスポンスを他の誰かに変換します' s ログ ライン。作業クライアント側を行うということは、データがまさにその開始場所に留まることを意味します。 Toolz.dev 上のすべてのツールのデフォルトであり、そのアーキテクチャが重要である理由をより詳細に説明したい場合は、 にレイアウトしました オンラインツール向けデータプライバシーガイド

これは実際のパイプラインのどこに収まるのでしょうか?

それ自体ではコンバーターは1 ステップですが、通常は長いフローの最後のホップであり、他の一握りのツールと自然にペアになります。 私の週で最も一般的な往復は、APIからJSONをエクスポートし、編集またはフィルタリングし、CSVに変換し、スプレッドシートに住んでいる人に手渡し、変更を加えて送り返すとき、私は他の方向を変換します CSVからJSONへのコンバーター、RFC 4180 ごとのファイルを解析し、タイプを推測するので、私は再びクリーンなオブジェクトを取得します。 2 つのツールは、互いに意図的なミラーである、それは彼らが架橋する理由です。

変換する前に、データを正気度チェックするためのグリッドとして表示したいことがよくあります CSV ビューア エクスポートが適切であることを確認できるように、CSV を並べ替え可能なテーブルとしてレンダリングします。そして、宛先がスプレッドシートではなく、XML を話す別のシステムである場合、 XML から JSON へのコンバー そして、その対応物はその脚をカバーします。これらはすべてローカルで実行されるため、アップロードすることなく同じプライベート ファイル上でチェーン接続できます。この種のデータ ラングリングのための頼りになるツールのセットをまとめている場合、私の Web 開発者ツールキット ガイド 組み立てについての考え方を取り上げます。

よくある質問

json を CSV に変換するにはどうすればよいですか? を開きます JSONからCSVへのコンバーター、オブジェクトのJSON配列を入力ボックスに貼り付け 、 「変換」をクリックします。 objectキーがヘッダー行になり、各オブジェクトがデータ行になり、CSVをコピーするか、または としてダウンロードできます .csv excelまたはgoogleスプレッドシートで開くファイル すべての処理はブラウザで行われるため、アップロードされるものは何もありません。

コンバータはどのようなJSON構造を想定していますか? オブジェクトの配列は理想的で、各オブジェクトが1 行になります。 1 つのオブジェクトも受け入れられ、1 行のファイルになります。 a の下にオブジェクトではない値が配置されます value 列なので何も失われず、ツールはそれが起こったときに警告します。

フィールドの異なるオブジェクトをどのように処理しますか? ヘッダーは、すべてのオブジェクトにわたって見つかったすべてのキーの結合であり、各キーが最初に表示される順序で保持されます。これらのキーの 1 つを欠いているオブジェクトは、その列に空のセルを取得するだけであるため、不均一なレコードでも、データがドロップされないクリーンで完全なテーブルが生成されます。

ネストされたオブジェクトや配列はどのように扱われますか? 平坦化すると、ネストされたオブジェクトがドット表記列に展開されます address.city; オフにすると、オブジェクトは 1 つのセルに JSON 文字列として書き込まれます。配列は、それらを正確に保存するために JSON として保存することも、より読みやすい列のために区切り文字で結合することもできます。変換ごとに選択します。

Excel の CRLF 行末を使用する必要があるのはなぜですか? Windows上のMicrosoft Excelは、各行の最後にキャリッジリターンプラス改行を期待しています.CRLFを選択すると、ファイルを開くときに行がマージされたり、読み間違えたりすることが回避されます.他のほとんどのツールやGoogleスプレッドシートでは、LFは正常に機能します。

値内のカンマと引用符は正しくエスケープされていますか? はい。 RFC 4180 に続いて、区切り文字、二重引用符、改行を含むフィールドは二重引用符で包まれ、内部引用符は二重になります。これにより、アドレス、説明、その他のフリー テキストが列に分割されるのではなく、単一の有効なフィールドとして保持されます。

敏感なJSONを変換しても安全ですか? はい。変換は完全にブラウザの JavaScript で実行され、ネットワーク リクエストにはデータが送信されず、ログや保存されるものは何もなく、ロードされるとオフラインで動作します。API キー、ユーザー レコード、または内部識別子を含む JSON はマシンから離れることはありません。

CSVをJSONに戻すことができますか? はい。 ザ・ CSVからJSONへのコンバーター プロセスを逆にして、カンマ区切りのファイルを型推論を備えたオブジェクトの JSON 配列に解析し直します。ラウンドトリッピングを使用すると、データを手書きで書き換えることなく、スプレッドシートと API 間でデータを移動できます。

Comments

0 comments

0/2000 characters

No comments yet. Be the first to share your thoughts!