C# 9 (.NET 5)からレコード型というのがある。
これは
public record User(string id, string password);
と書くと、下記と同じ感じになるような文法
public class User
{
public string id { get; set; }
public string password { get; set; }
}
当たり前だが、JSONシリアライズできる。
例えばSystem.Text.Jsonの場合は以下の通り。
// using System.Text.Json が必要
var user = new User("dekirukigasuru", "xxxyyyyzzzzwwww");
// シリアライズ
var ser = JsonSerializer.Serialize<User>(user);
// デシリアライズ
var des = JsonSerializer.Deserialize<User>(ser);
外部とやり取りする場合はSerializeToUtf8Bytes
の方を使うのが良いと思われる。
(Utf8String
みたいな話があったような気がしたが、どうなったのだろう)
以上、
単純なJSONを扱うときにせっせとクラスを書くことがあったので、楽になるなと思った次第。
ちなみに Visual Studio 2019 だと、JSONコピーした状態で
- [編集] -> [形式を選択して貼り付け] -> [JSON をクラスとして貼り付ける]
とやると必要なクラスを自動生成してくれる。