さじは投げられた

プログラマーの戯れ言

JsonPolymorphicないわー

System.Text.Json便利です。よく使っています。
ただ C# は型付けの言語なので、きっちりとした JSON は使いやすいですが、自由奔放な形式のJSONは苦手です。

JsonNode で頑張るのは…出来れば避けたいですね。

そこで、JsonPolymorphic, JsonDerivedType属性の出番です。
決まったキーを基準にシリアアライズに対応するクラスの切り替えが可能になります。

System.Text.Json で派生クラスのプロパティをシリアル化する方法 - .NET | Microsoft Learn

全ては解決できませんが、かなり柔軟度が高くなります。
やったぜ。と思ったんですが…

Type metadata in JSON is apparently not honored if $type is not the first property in the object....

キーとなるプロパティはJSONの最初にないとパースできない?
え???

なんか自分が見落としてるんならいいんですけどね、これじゃぁ使えない…