Json To Csv LogoJson To Csv

JSONファイルをCSVに変換する方法:アップロード、Excel、コマンドライン(2026年ガイド)

あなたのJSONはクリップボードではなくファイルの中にあります。このガイドではファイル中心のワークフローを徹底解説します。まずファイルを検証し、無料のオンラインアップローダー、ExcelのPower Query、コマンドラインスクリプトのいずれかで変換。巨大なファイル、文字エンコーディング、よくあるファイルエラーの対処法も紹介します。

更新日: 2026-10-0810 分で読めます

なぜ「JSONファイルの変換」は独立したスキルなのか

ほとんどの変換チュートリアルは、JSONがすでにクリップボード上にある前提で始まります。現実はファイルから始まります。ダウンロードフォルダにあるdata.json、保存したAPIのエクスポート、どこかのアプリのバックアップ、といった具合です。ファイルから作業すると、クリップボードへの貼り付けでは飛ばされる層が1つ増えます。エンコーディング、ファイルサイズ、改行コード、ディスク上に実際にあるデータの形などです。これらのどれもが、気づかないうちに結果を変えてしまう可能性があります。

良いニュースもあります。ファイルは1つの点で楽です。繰り返し可能なワークフローを強制してくれるからです。.jsonファイルから.csvファイルへの道筋さえ分かれば、ファイルが3KBでも300MBでも、1回でも100回でも同じように動きます。このガイドではそのワークフローを最初から最後まで解説します。ファイルの入手、チェック、3つの異なる変換方法、そしてCSVを壊さずに開く方法です。

あなたのJSONファイルの出どころ(そしてそれが重要な理由)

JSONファイルが届く場所は限られていて、どこから来たかが分かれば中身の予想がつきます。

  • APIのエクスポートとダウンロード。ダッシュボードの「エクスポート」や「JSONをダウンロード」ボタン、あるいはcurlでAPIを叩いてディスクに保存したものです。通常はレコードの配列で、CSV向きの最も扱いやすい形ですが、数百メガバイトになることもあります。
  • アプリのバックアップ。メッセージアプリ、メモアプリ、パスワードマネージャーはあなたのデータをJSONでエクスポートします。機械向けに設計されているため、オブジェクトの中にオブジェクトが入る深いネストになりがちで、表計算シート向きではありません。
  • ブラウザの開発者ツール。ネットワークレスポンスを右クリックして「名前を付けて保存」すれば.jsonファイルの出来上がりです。手軽で便利ですが、レスポンス本文を保存したのか、それを包むHTMLごと保存してしまったのかを必ず確認してください。
  • メール添付と共有ドライブ。同僚のエクスポートがdata.jsonとして届いた、というパターンです。検証が終わるまでは疑ってかかってください。複数のメールサーバーを経由した添付ファイルは、文字化けを拾ってくることがあります。

コンバーターに触れる前に、テキストエディタでファイルを開き、最初の数行を眺めてください。先頭に[があればレコードの配列です。理想的です。{があれば単一のオブジェクトで、フラット化が必要なネスト構造を含んでいる可能性があります。どちらも変換できます。後者はフラット化オプションをオンにするだけです。

ステップゼロ:変換前にファイルを検証する

このページのどのコンバーターも、構文エラーがあるファイルを拒否します。そしてエラーメッセージは問題の場所を必ずしも教えてくれません。先に検証、後に変換です。10秒で終わり、「なぜ変換できないのか」という一番よくある謎を消し去れます。

Pythonが入っていれば、道具なしでできる最速のチェックです。ファイルに対して以下を実行してください。成功すれば何も出力せず、失敗すれば問題のある行を指すエラーを出して終了します。

Terminal
# Validate data.json (quiet on success, points at the error on failure)
python3 -m json.tool data.json > /dev/null && echo "valid JSON"

よくある犯人は、末尾のカンマ、シングルクォートで囲んだ文字列、チャットアプリや文書から貼り付けられたスマートクォートです。すべてJSONでは違法です。入力するよりクリックしたい場合は、当サイトのJSON整形ガイドで無料のオンラインバリデーターを紹介しています。ファイルが端末に留まるよう、ブラウザ内で動作するものを選んでください。

心配しなくてよいことも1つ。1行の巨大なファイルです。ミニファイされたJSONはテキストエディタで見ると恐ろしく見えますが、完全に有効ですし、以下のどの方法でも処理できます。自分では読めないだけです。だからこそバリデーターが重要なのです。

方法1:無料オンラインコンバーターにファイルをアップロードする

1回きりのファイルなら、アップロードが他のどの方法より速いです。良いコンバーターは、貼り付けたテキストだけでなく、ドロップされた.jsonファイルも受け付けます。ファイルを開いて中身を手でコピーする必要は決してありません。それこそ文字化けや切り詰め貼り付けが起きる経路です。

当サイトの無料コンバーターを例に、ワークフローを見ていきましょう。

  • コンバーターを開き、.jsonファイルをアップロードエリアにドロップします(またはクリックして選択)。ファイルはディスクから直接読み込まれます。コピー&ペーストは不要です。
  • 変換前にオプションを設定します。ファイルにネストしたオブジェクトがあればフラット化をオンに(コンバーターがcustomer.nameのようなドット付き列に変換します)、区切り文字を選び(米国・英国のExcelならカンマ、多くのヨーロッパの地域ではセミコロン)、ヘッダーはオンのままにします。
  • 変換を押して.csvをダウンロードします。ファイルはブラウザタブ内で生成されるので、何もサーバーにアップロードされません。

コンバーターが本当にブラウザ内で動いているか、どうやって見分けますか。オフラインテストです。ページを読み込み、ネットワークを切断して、変換してみてください。クライアントサイドのツールは動き続けます。これが重要なのは、仕事のJSONファイルには顧客のメールアドレス、APIキー、社内データが含まれていることが多いからです。それらをよそのサーバーに置きたくはないはずです。ファイルが機密情報を含むなら、このテストは必須です。

この方法の実用的な上限はファイルサイズです。ブラウザタブは数メガバイトまでなら快適に処理します。それを超えると、文書全体がメモリに載るためタブが重くなります。ファイルが数十メガバイト以上なら、タブと格闘するより下のコマンドライン方式に進んでください。

無料コンバーターに.jsonファイルをドラッグ&ドロップ

方法2:ExcelでJSONファイルを直接開く

最終的な行き先が表計算シートなら、中間業者を飛ばせます。最近のExcelはPower Query経由でJSONファイルをネイティブに開けます。どうせExcelで分析する予定なら、これが一番すっきりした選択肢です。

  • ExcelでData、続いてGet Data、From File、From JSONと進み、.jsonファイルを選択します。
  • Power Queryがレコードを表として表示します。ネストしたレコードを含む列があれば、その列のヘッダーにある展開アイコンをクリックして、それぞれ独自の列に展開してください。フラット化の視覚的な等価物です。
  • 「閉じて読み込む」をクリックして表をワークシートに配置し、「ファイル」「名前を付けて保存」「CSV」で.csvファイルを書き出します。

正直な注意点が2つあります。まず、Google SheetsはJSONファイルをネイティブに開けません。.json用の「ファイル」「インポート」経路は存在しないのです。他の方法で先にCSVに変換してから、「ファイル」「インポート」を使ってください。次に、書き出し時の区切り文字に注意です。お使いの地域のExcelがセミコロンを期待するなら、あとでインポートウィザードと格闘するより、セミコロン区切りで保存・再エクスポートしてください。

方法3:コマンドラインからファイルを変換する

変換がもっと大きな仕事の一部、毎日のエクスポート、ビルドスクリプト、データパイプラインの1ステップである場合、ローカルスクリプトがクリック操作のどのツールにも勝ります。大きなファイルを快適に扱える唯一の方法でもあります。データチームが実際に使っている2つのコマンドを紹介します。どちらも実在のorders.jsonファイルに対してこのマシンでテスト済みです。

pandasを使ったPythonが主力です。ファイルを読み込み、ネストしたオブジェクトをドット記法の列にフラット化し、BOM付きでCSVを書き出します。ExcelがUTF-8を自動検出できるようになるためです。

Python
import pandas as pd

# Read the file straight from disk
df = pd.read_json("data.json")

# Flatten nested objects to dot-notation columns (customer.name)
df = pd.json_normalize(df.to_dict("records"))

# utf-8-sig adds a BOM so Excel detects the encoding correctly
df.to_csv("data.csv", index=False, encoding="utf-8-sig")
print(f"wrote data.csv ({len(df)} rows)")

jqは、必要なフィールドが数個だけの場合の軽量な選択肢です。このワンライナーはorders.jsonを読み込み、customer.nameのようなネストしたものを含むレコードごとに3つのフィールドを取り出し、正しいRFC 4180形式のCSVを標準出力に出します。ファイルにリダイレクトすれば完了です。

ファイル向けワンライナーのターミナル代替案

以下のjqコマンドは、実在のJSONファイルに対してこのマシンでテスト済みです。ネストしたcustomerオブジェクトとpricingオブジェクトを持つ注文レコード2件から、注文ID、ネストした顧客名、ネストした合計金額を抽出し、クォートされたCSV行にしました。

Terminal
$ jq -r '.[] | [.orderId, .customer.name, .pricing.total] | @csv' orders.json
"ORD-1","Ana",10.5
"ORD-2","Bo",7.25

@csvフィルターがクォートとエスケープを代行し、.customer.name構文がフラット化なしでネストしたオブジェクトに直接届きます。手元のファイルをターミナルでさっと処理するなら、これに勝るものはありません。

複数のJSONファイルを一気に変換する

エクスポートが1ファイルで届くことは滅多にありません。月次ダンプが30個の.jsonファイル、ということもあり、ブラウザタブで1つずつ変換していたら遅い午後の出来上がりです。上のPythonスクリプトのバッチ版はフォルダをループし、すべてのファイルを変換して、変換元と同じ名前のCSVを作ります。

Python
import pandas as pd, glob

# Convert every .json file in exports/ to its own .csv
for path in sorted(glob.glob("exports/*.json")):
    df = pd.json_normalize(pd.read_json(path).to_dict("records"))
    out = path.rsplit(".", 1)[0] + ".csv"
    df.to_csv(out, index=False, encoding="utf-8-sig")
    print(f"{path} -> {out} ({len(df)} rows)")

これはサンプルファイル2つに対してこのマシンでテスト済みです。各ファイルが独自のCSVを生成し、フラット化された列orderId,customer.name,pricing.totalと、ファイルごとの行数が出力されます。空の結果を見逃さずに済みます。注意点が1つ。このスクリプトはすべてのファイルが同じ形であることを前提にしています。異なるエクスポートが混ざったフォルダなら、形ごとに分けて変換してください。異なるキー集合を1つのCSVにまとめると、混乱を招くスカスカの表になります。

ブラウザタブを窒息させる大きなJSONファイル

ブラウザタブは文書全体をメモリに載せるため、数十〜数百メガバイトのファイルでタブが固まったり落ちたりします。目安はこうです。数メガバイトまではブラウザでOK。それより大きいものはローカルで変換します。ローカルツールにタブのメモリ上限はありません。

  • jqはストリーミングします。単純なフィールド抽出ならファイル全体をメモリに載せないので、ギガバイト級のログでも高速です。
  • pandasを使ったPythonなら、普通のノートPCで数百メガバイトを処理できます。上のスクリプトがそのまま使えます。
  • 本当に巨大なファイルでは、エクスポートを1行1オブジェクトの形式(JSON Lines)に分割できないか確認してください。行区切りファイルなら1レコードずつ処理でき、文書全体をメモリに載せる必要がありません。

サイズに関わらず、まず検証してください。2GBのファイルで構文エラーを1つ探す作業は、5分のアップロード後にコンバーターが失敗するのを眺めるより、python3 -m json.tool(またはストリーミングバリデーター)の方がずっと楽です。

CSVが着地した後:壊さずに開く

変換が完璧でも、表計算ソフトの見た目がおかしいことがあります。CSVを開くこと自体が小さな技術だからです。「CSVが壊れて見える」という報告のほぼすべては、次の3つの修正で解決します。

  • エンコーディング:アクセント付き文字が文字化けするなら、ファイルがUTF-8ではなくANSIとして読まれています。再インポートしてファイルの読み込み元を65001: UTF-8に設定してください。(上のPythonスクリプトは、Excelが自動検出できるようBOMを書き出しています。)
  • 区切り文字:すべてが1列に固まるなら、あなたのExcelはセミコロンを期待しています。ヨーロッパの地域ではよくあります。インポートと格闘するより、セミコロン区切りで再エクスポートしてください。
  • 先頭のゼロ:07477のような郵便番号やIDは、表計算ソフトが「数値」と推測するとゼロを失います。インポート時に列をテキストとして書式設定するか、先頭にアポストロフィを付けてください。

そして元の.jsonファイルは残してください。変換はファイルを読み出すだけで、変更しません。JSONは無傷です。アーカイブにコストはかかりません。CSVは一方向の簡略化です。戻して変換しても、データ型やフラット化した列は復元できません。

ファイルエラーとその直し方

ファイルには、貼り付けたテキストにはない失敗モードがあります。コンバーターがファイルを拒否したら、他の何より先にこのリストを確認してください。

  • 拡張子の間違い。メモ帳(Notepad)からdata.json.txtとして保存されたファイル、あるいはダウンロード失敗で中身がHTMLの.jsonはパースできません。最初の数行を開いてください。<html>が見えたら、JSONではなくエラーページをダウンロードしています。
  • 文字化け。メールを経由したり、間違ったエンコーディングで保存されたファイルは文字化けを含むことがあります。UTF-8で保存し直してください。迷ったら、ステップゼロのバリデーターが読めない箇所を指摘します。
  • ファイルは正常だが巨大。大きなファイルのセクションを見てください。これはデータの問題ではなく道具の問題です。
  • 改行コード。CRLFとLFの違いはJSONのパースに一切影響しません。コンバーターが改行コードのせいにするなら、本当の問題は別にあります。通常は上のどれかです。

「ファイルが変換できない」という報告の90%はこの4つのどれかで終わります。残りの10%は本当に無効なJSONで、バリデーターが問題のある行をまっすぐ指し示します。

どのファイルワークフローを選ぶべきか

このページのすべての方法は、同じファイルを読んで同じ入力から同じCSVを生成します。選択の軸は利便性、プライバシー、スケールです。自分の状況に合わせてください。

  • 数メガバイト以下の1ファイル:無料オンラインコンバーターにドロップ。圧倒的に速い。
  • ファイルに機密データ:クライアントサイドのコンバーター、Excel、ローカルスクリプトのどれか。先にアップロードするものは避ける。
  • 行き先が表計算シート:ExcelのJSONからの取り込みで、コンバーターを飛ばす。
  • 大量のファイルや定期実行:Pythonバッチスクリプトをバージョン管理して再実行可能に。
  • 巨大なファイル:ローカルツールのみ。jq、Python、行区切り処理。

そしてすべてに共通する習慣。変換前にファイルを検証し、変換後も元ファイルを残し、CSVを開くときはエンコーディングを確認する。この3つを守れば、JSONファイルは最も扱いやすい入力になります。

関連ガイド

よくある質問

インストールなしでJSONファイルをCSVに変換できますか?

はい。ブラウザ内で動作する無料オンラインコンバーターに.jsonファイルをドロップするだけです。インストールもアカウントも不要で、CSVをダウンロードできます。Excelが既に入っているなら、Data > Get Data > From File > From JSONで追加のインストールなしにファイルをネイティブに開けます。

JSONファイルをオンラインコンバーターにアップロードしても安全ですか?

変換がブラウザ内で行われる場合に限ります。このサイトのようなクライアントサイドのコンバーターは、ファイルをディスクから読み込んでCSVをローカルに生成するので、データが端末の外に出ることはありません。ページ読み込み後にネットワークを切断してみて、まだ変換できるならクライアントサイドです。機密ファイルにも安全です。

JSONファイルを変換した後、ExcelがCSV全体を1列に入れてしまうのはなぜですか?

あなたのExcelが別の区切り文字、通常はヨーロッパの地域でのセミコロンを期待しているからです。インポートウィザードと格闘するより、セミコロン区切りで再エクスポートしてください。あるいはData > From Text/CSVで、インポート時に区切り文字を明示的に設定します。

とても大きなJSONファイルをCSVに変換するにはどうしますか?

ブラウザタブではなくローカルで変換します。jqは単純なフィールド抽出ならギガバイト級のファイルをストリーミング処理し、pandasを使った短いPythonスクリプトなら普通のノートPCで数百メガバイトを処理できます。まずファイルを検証してください。巨大なファイルの構文エラーを1つ探す作業は、変換後の失敗より変換前の方がずっと楽です。

複数のJSONファイルを一度にCSVに変換できますか?

はい。短いバッチスクリプトがフォルダをループしてすべてのファイルを変換し、変換元と同じ名前のCSVを作ります。このガイドのPythonスニペットはまさにそれで、pandasを使い、ファイルごとの行数を出力するので空の結果に気づけます。データの形が違うファイルは分けて変換してください。異なるキー集合を1つにまとめると、混乱を招く表になります。

JSONファイルが変換できません。何が問題ですか?

ほぼ必ず4つのどれかです。ファイルが有効なJSONでない(python3 -m json.toolでエラーを特定)、「JSON」が実はダウンロード失敗のHTMLエラーページ、ファイルがブラウザタブには大きすぎる、拡張子が嘘をついている(data.json.txt)、のどれかです。まず検証してください。問題を数秒で指し示します。

変換すると元のJSONファイルは変更・削除されますか?

いいえ。このガイドのすべての方法はファイルを読み出して新しいCSVを書き出すだけで、元の.jsonは無傷です。アーカイブとして残してください。CSVは一方向の簡略化です。CSVを戻して変換しても、データ型やネスト構造は復元できません。

あなたのJSONファイルを表計算シートに変えよう

無料コンバーターに.jsonファイルをドラッグ&ドロップして、クリーンでそのまま使えるCSVを数秒でダウンロード。登録不要、ファイルがブラウザの外に出ることもありません。

今すぐJSONファイルを変換する
ガイド一覧