NewIntroducing QODEX QA Services — platform-powered QA for API-driven teams.Learn more →
API Testing1 min read

CSV対JSON: 主な違い、ユースケース、使い分けガイド

S
Shreya Srivastava
Content Team
Updated on: February 2026

CSV対JSON: クイックサマリー

CSVとJSONは最も一般的な2つのデータフォーマットですが、それぞれ異なる目的に対応しています。CSVはフラットな表形式データに優れており、JSONはネストされた階層構造を処理します。以下に簡単な比較を示します。

機能

CSV

JSON

正式名称

Comma-Separated Values(カンマ区切り値)

JavaScript Object Notation

データ構造

フラットな表形式(行と列)

階層構造(ネストされたオブジェクトと配列)

データ型

すべてテキスト

文字列、数値、ブール値、null、配列、オブジェクト

読みやすさ

表形式データに最適

構造化データに最適

ファイルサイズ

表形式データは非常にコンパクト

より大きい(キー名が繰り返される)

スキーマ

ヘッダー行(暗黙的)

自己記述的(明示的なキー)

ネストデータ

非対応

ネイティブサポート

標準化

RFC 4180(緩やかに準拠)

RFC 8259(厳密に定義)

スプレッドシートサポート

ネイティブ(Excel、Google Sheets)

インポート/変換が必要

最適な用途

データ分析、スプレッドシート、一括インポート/エクスポート

API、Webアプリ、設定ファイル、データベース

CSVとは何ですか?

CSV(Comma-Separated Values)は、行と列に表形式データを格納するプレーンテキストフォーマットです。各行はレコードを表し、レコード内のフィールドはカンマ(またはタブやセミコロンなどの他の区切り文字)で区切られます。

CSVの例:

name,email,age,active
John Doe,john@example.com,30,true
Jane Smith,jane@example.com,25,false
Bob Wilson,bob@example.com,35,true

CSVの強みには以下のものがあります。

  • 非常にシンプル: フォーマットが直感的で、作成や読み込みに特別なツールが不要です。

  • コンパクトなファイルサイズ: 最小限のオーバーヘッドにより、数百万行あってもCSVファイルは小さいサイズを保ちます。

  • ユニバーサルなスプレッドシートサポート: Excel、Google Sheets、LibreOfficeがCSVファイルをネイティブで開きます。

  • データベース互換性: すべてのデータベースがCSVのインポート/エクスポートをサポートしています。

  • ストリーミングフレンドリー: CSVは1行ずつ処理できるため、大規模なデータセットの効率的な処理が可能です。

CSVはデータベース、スプレッドシート、データ分析ツール間のデータ交換の共通言語です。ほとんどの一括データエクスポート、データ移行、機械学習のトレーニングデータセットで使用されるフォーマットです。

JSONとは何ですか?

JSON(JavaScript Object Notation)は、構造化データをキーと値のペア、配列、ネストされたオブジェクトとして表す軽量なデータ交換フォーマットです。API通信とWebアプリケーションデータの主要フォーマットです。

同じデータをJSONで表すと:

[
  {"name": "John Doe", "email": "john@example.com", "age": 30, "active": true},
  {"name": "Jane Smith", "email": "jane@example.com", "age": 25, "active": false},
  {"name": "Bob Wilson", "email": "bob@example.com", "age": 35, "active": true}
]

JSONのメリットには以下のものがあります。

  • 自己記述的: すべての値に明示的なキーがあり、データを明確にします。

  • ネイティブなデータ型: 文字列、数値、ブール値、null、配列、オブジェクトを区別します。

  • ネスト構造: 階層データ(オブジェクト内のオブジェクト、オブジェクトの配列)を自然に表現します。

  • ユニバーサルなAPIフォーマット: REST APIとWebサービスの標準フォーマットです。

  • 言語サポート: JavaScriptでネイティブに解析でき、あらゆる言語のライブラリでサポートされています。

JSONは現代のWeb API、NoSQLデータベース(MongoDB、CouchDB)、設定ファイル、フロントエンド/バックエンド間の通信を支えています。

CSVとJSONの主な違い

1. データ構造

CSVはスプレッドシートのように厳密にフラット(行と列)です。JSONはネストされた階層データをサポートしています。データに関係がある場合(例: 複数の住所を持つユーザー、各住所に複数の電話番号)、JSONはこれを自然に表現できますが、CSVでは複数のテーブルやセル内の区切り文字付き値などの回避策が必要です。

2. データ型

CSVはすべてをテキストとして扱います。数値の42、文字列の"42"、ブール値のtrueはすべてCSVでは同じように見えます。消費者はコンテキストまたは外部スキーマから型を推測する必要があります。JSONは値を明示的に型付けします: 42は数値、"42"は文字列、trueはブール値です。

3. 自己記述性

JSONは自己記述的で、各値はキー名でラベル付けされています。CSVは列の位置とオプションのヘッダー行に依存しています。CSV列が並び替えられたり、ヘッダーが欠落していたりすると、データの解釈が崩れます。JSONデータはキーの順序に関係なく有効なままです。

4. ファイルサイズ

フラットな表形式データでは、CSVの方が大幅にコンパクトです。JSONはすべてのレコードでキー名を繰り返します。100万行のデータセットはCSVでは50MBかもしれませんが、JSONでは200MBになることがあります。ただし、圧縮(gzip)すると、繰り返されるキー名は非常によく圧縮されるため、差は縮まります。

5. 解析

CSVの解析は単純に見えますが、多くのエッジケースがあります: 引用されたフィールド、エスケープされたカンマ、フィールド内の改行、異なる区切り文字、エンコーディングの問題などです。RFC 4180が標準を提供していますが、多くの実装が逸脱しています。JSONには厳密で明確に定義された文法(RFC 8259)があり、すべてのパーサーが一貫して処理します。

6. ストリーミング

CSVは本質的にストリーミング可能で、ファイル全体を読み込まずに1行ずつ処理できます。JSON配列は通常完全に解析する必要がありますが、NDJSON(改行区切りJSON)は各行が完全なJSONオブジェクトであるストリーミングフレンドリーな代替手段を提供します。

パフォーマンス比較

指標

CSV

JSON

ファイルサイズ(フラットデータ)

大幅に小さい

2〜4倍大きい(繰り返されるキー)

ファイルサイズ(圧縮後)

ほぼ同じ

ほぼ同じ(キーは圧縮効率が高い)

解析速度

フラットデータで非常に高速

高速(JSではネイティブ)

メモリ使用量

低い(1行ずつストリーミング)

高い(完全解析)、NDJSONでは低い

書き込み速度

非常に高速

高速

大規模データセットの処理

優秀(ストリーミング)

良好(NDJSON)から低い(大きな配列)

数百万行のフラットデータを使用するデータ分析ワークロードでは、CSVが通常最も効率的な選択です。データ構造がネストされており、レコード数が適度なAPI通信では、JSONのオーバーヘッドはわずかであり、その表現力が価値を持ちます。

CSVを使うべき場合

CSVが適している場合は以下のとおりです。

  • 表形式データ: 一貫した列を持つフラットなスプレッドシート形式のデータです。

  • データ分析: pandas、R、Excel、Google Sheets、BIツールへの入力です。

  • 一括インポート/エクスポート: データベースまたはシステム間のデータ移行です。

  • 大規模データセット: ファイルサイズとストリーミングが重要な数百万行のデータです。

  • 非技術系ユーザー: スプレッドシートで作業するビジネスユーザーです。

  • 機械学習: トレーニングデータセットとフィーチャーファイルです。

  • ログデータ: 一貫したフィールドを持つ構造化されたログエントリです。

  • レポート生成: Excelで開くレポートのエクスポートです。

JSONを使うべき場合

JSONが適している場合は以下のとおりです。

  • APIレスポンス: REST APIとWebサービスの標準フォーマットです。

  • ネストデータ: オブジェクト内にオブジェクトがある階層構造です。

  • 設定ファイル: アプリケーション設定、パッケージマニフェスト(package.json)です。

  • Webアプリケーション: フロントエンド/バックエンド間の通信です。

  • NoSQLデータベース: MongoDBなどのドキュメントストアはJSONライクなフォーマットを使用します。

  • 型の保持: 数値、文字列、ブール値を区別することが重要な場合です。

  • 複雑なデータモデル: 関係、オブジェクトの配列、オプションフィールドです。

  • リアルタイムデータ: WebSocketメッセージとイベントストリーミングです。

関連記事: JSONをCSVに変換する方法: メソッド、ツール、コード例

関連記事: YAML対JSON: 主な違い、ユースケース、使い分けガイド...

CSVとJSONは変換できますか?

はい、CSVとJSONの間の変換はソフトウェア開発で最も一般的なデータ変換タスクの一つです。フラットデータでは変換は簡単ですが、ネストされたJSONでは構造に関する判断が必要です。

Qodexは両方向の変換に無料ツールを提供しています。

変換の考慮事項

CSVからJSONへ:

  • ヘッダー行がJSONのキーになります。

  • すべての値はデフォルトで文字列です。数値とブール値を解析する必要があるかもしれません。

  • 各行が配列内のJSONオブジェクトになります。

JSONからCSVへ:

  • ネストされたオブジェクトはフラット化する必要があります(例: address.cityが列名になります)。

  • オブジェクト内の配列は特別な処理が必要です(複数の行または区切り文字付き文字列)。

  • データ型情報は失われます。

これらの変換は、APIテストがAPIレスポンス(JSON)とスプレッドシート(CSV)に格納された期待データの比較を含む場合によく見られます。Qodex.aiはAPIテストワークフローの自動化を支援し、両フォーマットをシームレスに処理します。


よくある質問

APIにはCSVとJSONのどちらが適していますか?

JSONはAPI通信の標準です。JSONがネストされたデータ構造、明示的なデータ型をサポートし、ブラウザでネイティブに解析できることから、現代のREST APIの90%以上がJSONを使用しています。CSVは一括データエクスポートエンドポイントで使用されることがありますが、APIのリクエスト/レスポンスフォーマットのデフォルトの選択はJSONです。

CSVとJSONはどちらが小さいですか?

フラットな表形式データでは、CSVが大幅に小さく、JSONがすべてのレコードでキー名を繰り返すため、等価なJSONよりも2〜4倍小さいことが多いです。ただし、圧縮(gzip)すると、繰り返されるキー名は非常によく圧縮されるため、サイズの差は縮まります。ネストされたまたはスパースなデータでは、それをCSVにフラット化しようとするよりもJSONの方が実際にはより効率的な場合があります。

JSONはCSVと同様に表形式データを処理できますか?

JSONはオブジェクトの配列として表形式データを表現できますが、この目的には効率が低いです。各行がすべての列名を繰り返し、ファイルサイズが増加します。CSVは表形式データに特化して設計されており、よりコンパクトで効率的です。JSONで表形式データを使用するのは、データ型付け、ネスト構造、またはAPI互換性も必要な場合に限ってください。

NDJSONとは何ですか?CSVとJSONとの関係は?

NDJSON(改行区切りJSON)は、各行が完全なJSONオブジェクトであるフォーマットです。JSONのデータ型付けと構造をCSVのストリーミング能力と組み合わせています。NDJSONはロギング(各ログエントリがJSONオブジェクト)、データパイプライン、大規模なデータセットを返すAPIで一般的に使用されます。多くのユースケースで両方の長所を兼ね備えています。

JSONのAPIレスポンスをCSVに変換するにはどうすればよいですか?

Qodexの無料のJSON to CSV コンバーターを使用するか、json2csv(Node.js)、pandas(Python)、Jackson(Java)などのライブラリを使用してプログラム的に変換できます。変換する際、ネストされたオブジェクトはドット記法(例: address.city)を使用してフラット化され、配列は複数の行に分割されるか、結合される場合があります。

ExcelはJSONファイルを開けますか?

最新のExcelバージョン(2016以降)はPower Query(データの取得 > JSONから)を通じてJSONをインポートできます。ただし、CSVファイルはダブルクリックでネイティブに開きます。主にスプレッドシートで作業する非技術系ユーザーにとっては、CSVの方がアクセスしやすいフォーマットです。スプレッドシートを主に使用するチームとデータを共有する場合は、JSONをCSVに変換してください。