導入
シリアライズはデシリアライズの逆——C#オブジェクトをJSON文字列に変換する操作です。APIへデータを送るときに使います。
図解
flowchart LR
O["User オブジェクト<br/>Name=Hanako, Age=25"] -->|Serialize| J["JSON文字列<br/>{"Name":"Hanako","Age":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でオブジェクト→JSONWriteIndentedで整形出力- 送信データの作成に使う
次回: データを送る・更新する・消す「POST/PUT/DELETE」です。