以下の内容はhttps://rksoftware.hatenablog.com/entry/2025/01/29/000000より取得しました。


JSON で配列の要素が要素ごとに型が違う場合

JSON で配列の要素が要素ごとに型が違う場合、それぞれのパターンで持っているプロパティ全部を持ったクラスを定義する方法があります。
例えば次のように、配列の 1 番目の要素では P1 というプロパティがあり、2 番目の要素では P2 という要素がある場合です。

var json = @"
{
  ""Content"":[
    {""P1"":1},
    {""P2"":2}
  ]
}";

var data = System.Text.Json.JsonSerializer.Deserialize<Data>(json);
Console.WriteLine(data?.Content?[0]);   // Member { P1 = 1, P2 = 0 }
Console.WriteLine(data?.Content?[1]);   // Member { P1 = 0, P2 = 2 }

record Data
{
    public List<Member>? Content { get; set; }
}
record Member
{
    public int P1 { get; set; }
    public int P2 { get; set; }
}

簡単ですね。

ちなみに、同じ名前のプロパティで場合によって配列だったりそうでなかったりなどの場合に対応方法は今はまだよくわかりません。




以上の内容はhttps://rksoftware.hatenablog.com/entry/2025/01/29/000000より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14