カテゴリ: C# 更新日: 2026/08/24

C#のWeb API開発!JSONレスポンスを扱う方法を基礎から解説

C#でWeb APIのレスポンスをJSONとして扱う方法
C#でWeb APIのレスポンスをJSONとして扱う方法

先生と生徒の会話形式で理解しよう

生徒

「C#でWeb APIを作るとき、相手から送られてくるJSONデータってどうやって処理すればいいんですか?」

先生

「Web API開発では、通信の標準ルールであるJSON形式を使いこなすことが不可欠ですよ。」

生徒

「そもそもJSONって何ですか?パソコン初心者でもわかるように教えてください!」

先生

「それでは、Web APIの通信とJSONの扱い方を基本から見ていきましょう。」

1. Web APIとJSONの基本を知ろう

1. Web APIとJSONの基本を知ろう
1. Web APIとJSONの基本を知ろう

Web APIとは、インターネットを通じてプログラム同士が情報をやり取りする窓口のようなものです。例えば、天気の情報を取得したり、データベースのデータを保存したりする際に使われます。

そして、その情報の受け渡しで最も使われているのがJSON(ジェイソン)というデータ形式です。JSONは、人間にも読み書きしやすく、コンピュータにとっても処理しやすいデータ構造です。まるで郵便物の中に宛先や内容が整理されて入っているようなものだと考えてください。

2. C#でのJSON処理に必要な準備

2. C#でのJSON処理に必要な準備
2. C#でのJSON処理に必要な準備

C#でWeb APIを開発し、JSONを扱うためには、標準で用意されているSystem.Text.Jsonという便利な道具箱(ライブラリ)を使います。昔は外部のツールが必要でしたが、現在はこれだけで十分です。

JSONは「キー」と「値」のペアでデータが管理されます。これをC#のプログラムで扱うために、データを受け入れるためのクラスという設計図を用意します。プログラミングにおいて、この設計図を定義することを「クラス定義」と呼びます。

3. JSONデータをC#のクラスへ変換する

3. JSONデータをC#のクラスへ変換する
3. JSONデータをC#のクラスへ変換する

Web APIから送られてくるJSONデータは、そのままでは単なる長い文字列です。これをプログラムで計算や表示ができるように、C#のオブジェクトという形式に変換することを「デシリアライズ」と呼びます。デシリアライズとは、分解されたデータを元の形に復元するという意味です。

以下のコード例では、JSONの文字列をC#のプログラム内で読み込む方法を紹介します。


using System.Text.Json;

// JSONデータ(文字列)
string jsonString = "{\"name\": \"田中\", \"age\": 25}";

// クラス定義
public class User
{
    public string Name { get; set; }
    public int Age { get; set; }
}

// デシリアライズ処理
User user = JsonSerializer.Deserialize<User>(jsonString);
Console.WriteLine(user.Name);

この処理を行うことで、文字列として存在していたデータが、プログラムで使いやすい変数という箱に収まりました。

4. 通信でWeb APIを叩くHttpClientの使い方

4. 通信でWeb APIを叩くHttpClientの使い方
4. 通信でWeb APIを叩くHttpClientの使い方

次に、実際にWeb APIにアクセスして通信を行う方法を学びましょう。C#ではHttpClientというクラスを使います。これは、インターネット上のサーバーに対してリクエスト(お願い)を送り、レスポンス(返事)を受け取るための道具です。

パソコンがサーバーと通信する際、HttpClientはブラウザがWebサイトを見るのと同じような役割をプログラムの中で果たしてくれます。


using System.Net.Http;

using (HttpClient client = new HttpClient())
{
    // APIのURLに対してリクエストを送信
    HttpResponseMessage response = await client.GetAsync("https://api.example.com/data");
    
    // 結果が成功なら中身を取得
    if (response.IsSuccessStatusCode)
    {
        string content = await response.Content.ReadAsStringAsync();
        Console.WriteLine(content);
    }
}

ここで出てくる「非同期処理」とは、通信中にプログラム全体を止めずに、裏側で作業を進めるための技術です。これにより、Web APIの返事が来るまでの間も、画面の表示をスムーズに保つことができます。

5. JSONデータの作成とWeb APIへの送信

5. JSONデータの作成とWeb APIへの送信
5. JSONデータの作成とWeb APIへの送信

データを受け取るだけでなく、こちらからJSON形式のデータを送信することも可能です。これを「シリアライズ」と呼びます。シリアライズとは、C#のプログラム内にあるデータを、Web APIに送信可能なJSON形式の文字列に変換することを指します。

シリアライズを行うことで、複雑な計算結果や入力データをサーバーに保存してもらう準備が整います。


using System.Text.Json;

var newUser = new User { Name = "佐藤", Age = 30 };
string json = JsonSerializer.Serialize(newUser);

Console.WriteLine(json);

シリアライズを使えば、プログラミング初心者が手動でJSONのカッコやカンマを並べる必要はありません。自動的にルールに従った正しい形式を作ってくれるため、ミスが格段に減ります。

6. エラーハンドリングで安全な通信を

6. エラーハンドリングで安全な通信を
6. エラーハンドリングで安全な通信を

Web API開発で忘れてはならないのが、エラーの処理です。インターネット通信は、相手のサーバーが混雑していたり、URLが間違っていたりして失敗することがあります。そんな時にプログラムが突然停止しないよう、例外処理というガードレールを用意します。


try
{
    // 通信処理
}
catch (HttpRequestException e)
{
    Console.WriteLine("通信エラーが発生しました: " + e.Message);
}

「try-catch文」は、間違いが起きそうなコードを囲んでおき、もし失敗したら代わりに特定の指示を実行するという仕組みです。これにより、Web API開発において安定したアプリケーションを提供することが可能になります。基本的なHTTPステータスコードを理解し、エラー時には適切なメッセージを表示することが、プロとしての第一歩です。

カテゴリの一覧へ
新着記事
New1
C#
C#とは何か?初心者向けにできること・特徴・インストール手順までやさしく解説
New2
C#
C#のメソッドを引数に渡す方法!高階関数の基本を学ぼう
New3
Azure
Azure Front Door Analytics活用|リアルタイム監視とレポートで通信を分析
New4
COBOL
COBOLで数値比較とALPHABETIC・NUMERIC条件をやさしく解説!初心者でも安心ガイド
人気記事
No.1
Java&Spring記事人気No1
C#
C#のWPFとは?XAMLでGUI開発を基礎から完全解説!初心者向けの入門ガイド
No.2
Java&Spring記事人気No2
COBOL
COBOL教育における教材とリソース完全ガイド!初心者でもわかるプログラミング学習の選び方
No.3
Java&Spring記事人気No3
Azure
Azure SQL Database購入モデル比較!vCoreとDTUの違いと選び方を初心者向けに解説
No.4
Java&Spring記事人気No4
C#
C#のLINQでWhere句を使いこなす!初心者でもわかるデータ抽出とフィルタリング
No.5
Java&Spring記事人気No5
COBOL
COBOLのCOPY句の使い方を完全ガイド!初心者でもわかる共通部品の再利用方法
No.6
Java&Spring記事人気No6
COBOL
COBOLの数値データ型「PIC 9」の使い方と注意点をやさしく解説!
No.7
Java&Spring記事人気No7
C#
C#のLINQでFirstとFirstOrDefaultの違いと使い方を完全解説!初心者向けガイド
No.8
Java&Spring記事人気No8
C#
C#のforeachループを完全ガイド!初心者でもわかるコレクション操作の基本