C#でJSONの往復変換を行う
このレッスンでは、レコードをJSONに変換してから読み戻し、データがそのまま保たれていることを確認します。
はじめに
オブジェクトをJSONに変換してから読み戻す往復変換(round trip)は、データモデルが正しく保存・復元されるかを確かめる実践的な方法です。ユーザーの設定を保存したり、APIでデータをやり取りしたりするときに特に重要です。
SerializeはレコードSettingsをJSON文字列に変換します。Deserializeのとき、System.Text.Jsonはコンストラクターの引数と公開プロパティをもとにレコードを作り直します。結果がnullのこともあるので、プログラムは演算子?.を使い、元のデータどおりdark: 16と表示します。
実行できる C# の例
C#
Program.cs
using System;
using System.Text.Json;
record Settings(string Theme, int FontSize);
class Program
{
static void Main()
{
string json = JsonSerializer.Serialize(new Settings("dark", 16));
Settings? settings = JsonSerializer.Deserialize<Settings>(json);
Console.WriteLine($"{settings?.Theme}: {settings?.FontSize}");
}
}
dark: 16デバッガーで練習する
大事な代入や条件にブレークポイントを置いて Debug を押し、次の行に進む前にローカル変数の値を確かめましょう。
チャレンジで練習する
このレッスンの内容を使って実際の問題を解きましょう。各チャレンジはブラウザで動き、すぐにテストされ、AI のレビューも受けられます。
- JSON オブジェクトを作る キーと値を JSON オブジェクト文字列に変換し、引用符とバックスラッシュを正しくエスケープします。 簡単
- フラットな JSON の数値を合計 整数を値に持つフラットな JSON オブジェクトを解析し、値の合計を求めます。 簡単