1. ホーム
  2. c#

[解決済み] Json.netは派生型をシリアライズ/デシリアライズするのか?

2022-05-14 10:53:58

質問

json.net (ニュートンソフト)

私はドキュメントに目を通していますが、これに関するもの、またはそれを行うための最良の方法を見つけることができません。

public class Base
{
    public string Name;
}
public class Derived : Base
{
    public string Something;
}

JsonConvert.Deserialize<List<Base>>(text);

シリアライズされたリストの中に派生オブジェクトがあります。リストをデシリアライズして派生型を取り出すにはどうしたらよいでしょうか?

どのように解決するのですか?

型を保存する場合は text (このシナリオではそうあるべきです) を使用すると JsonSerializerSettings .

ご覧ください。 Newtonsoft JSON.NETでJSONをIEnumerable<BaseType>にデシリアライズする方法です。

しかし、注意してください。 以外のものを使用すると TypeNameHandling = TypeNameHandling.None を使うと セキュリティの脆弱性 .