本文へスキップ
BecomeCoder

C#実践コース · 第2章 HTTP通信 · レッスン12

JSONシリアライズ

ブラウザで完結

導入

シリアライズはデシリアライズの逆——C#オブジェクトをJSON文字列に変換する操作です。APIへデータを送るときに使います。

図解

flowchart LR
    O["User オブジェクト<br/>Name=Hanako, Age=25"] -->|Serialize| J["JSON文字列<br/>{&quot;Name&quot;:&quot;Hanako&quot;,&quot;Age&quot;:25}"]

サンプル

var user = new User("Hanako", 25);

// C#オブジェクト → JSON文字列
string json = JsonSerializer.Serialize(user);
Console.WriteLine(json);   // {"Name":"Hanako","Age":25}

// 整形(人が読みやすく)するオプション
var pretty = JsonSerializer.Serialize(user, new JsonSerializerOptions { WriteIndented = true });
Console.WriteLine(pretty);
// {
//   "Name": "Hanako",
//   "Age": 25
// }

record User(string Name, int Age);
  • JsonSerializer.Serialize(オブジェクト)でオブジェクト→JSON文字列
  • WriteIndented = trueで人が読みやすく整形できる
  • APIへPOSTするデータの作成などに使う

演習

var product = new Product("マウス", 2980);

// TODO: product を JSON文字列にシリアライズして出力してください
//       (期待: {"Name":"マウス","Price":2980})
___

record Product(string Name, int Price);
  • 期待される出力: {"Name":"マウス","Price":2980}
ヒント1を見る

JsonSerializer.Serialize(product)

ヒント2を見る

Console.WriteLine(JsonSerializer.Serialize(product));

まとめ

  • JsonSerializer.Serializeでオブジェクト→JSON
  • WriteIndentedで整形出力
  • 送信データの作成に使う

次回: データを送る・更新する・消す「POST/PUT/DELETE」です。

実際に動かしてみよう

本文のサンプルや演習のコードは、コードブロック右上の「コピー」ボタンでコピーして、下のエディタに貼り付ければそのまま実行できます。

C# — ブラウザ内で実行

ブラウザ内でC#を動かす環境を読み込みます(初回のみ数秒)。
スクロールして表示された時点でも自動で読み込まれます。