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; } }
簡単ですね。
ちなみに、同じ名前のプロパティで場合によって配列だったりそうでなかったりなどの場合に対応方法は今はまだよくわかりません。