如果我有一个字典并将例如类 MyClass 的实例添加到该字典中,我如何确保字典的反序列化和序列化包含该类而不是 JObject?
internal class MyClass
{
public string MyProperty { get; set; }
}
[TestMethod]
public async Task DebugTest()
{
Dictionary<string, object> testDictionary = new Dictionary<string, object>();
testDictionary.Add("testkey", new MyClass() { MyProperty = "testproperty" });
string json = JsonConvert.SerializeObject(testDictionary);
Dictionary<string, object> restoredDictionary = JsonConvert.DeserializeObject<Dictionary<string, object>>(json);
}
testDictionary 包含MyClass,但restoredDictionary 包含JObject。
更新:请注意,我将不得不使用字符串、对象。所以我真的在寻找一种方法来告诉 Json.Net 转换为类而不是 JObject
问题是 Json.Net 无法知道反序列化和再次序列化的字符串、对象应该属于特定类型。幸运的是,有一个名为 TypeNameHandling 的属性告诉 Json.Net 将类型保存在 json 字符串中。使用此选项进行序列化和反序列化效果很好:-)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句