導入
前レッスンの構成ファイルの中身——JSON形式の設定——を、実際にC#で読み込んでみましょう。値を設定ファイルに外出しすれば、再ビルドなしで挙動を変えられます。
図解
flowchart LR
JSON["appsettings.json<br/>{ "DiscountRate": 0.1 }"] --> LOAD["読み込み"] --> BIND["C♯の型にバインド"] --> APP["settings.DiscountRate として使う"]
サンプル
// 実務ではファイル(appsettings.json)から読むが、ここでは文字列で表現
string configJson = """
{ "AppName": "BecomeCoder", "DiscountRate": 0.1, "MaxItems": 20 }
""";
var settings = JsonSerializer.Deserialize<AppSettings>(configJson)!;
Console.WriteLine($"{settings.AppName}: 割引{settings.DiscountRate * 100}% / {settings.MaxItems}件");
// BecomeCoder: 割引10% / 20件
record AppSettings(string AppName, double DiscountRate, int MaxItems);
- 設定値をJSONに外出しすれば、再ビルドなしで挙動を変えられる
- JSONのキーとプロパティ名が一致すれば
Deserializeで型に丸ごと読み込める - ASP.NET Coreでは
appsettings.jsonが自動で読み込まれる(芯は同じ)
演習
string configJson = """
{ "SiteName": "サンプル書店", "TaxRate": 0.1 }
""";
// TODO: SiteSettings record を定義して読み込み、"サンプル書店(税率10%)" と出力してください
___
- 期待される出力:
サンプル書店(税率10%)
ヒント1を見る
record SiteSettings(string SiteName, double TaxRate);
ヒント2を見る
var s = JsonSerializer.Deserialize<SiteSettings>(configJson)!; Console.WriteLine($"{s.SiteName}(税率{s.TaxRate * 100}%)");
まとめ
次回: 表形式データの定番「CSV」です。