【发布时间】:2017-05-08 11:02:36
【问题描述】:
如果我有字典并添加例如这个字典的 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,但 restoreDictionary 包含 JObject。
更新:请注意,我将不得不使用字符串、对象。所以我真的在寻找一种方法来告诉 Json.Net 转换为类而不是 JObject
【问题讨论】:
-
试试
var restoredDictionary = JsonConvert.DeserializeObject<Dictionary<string, MyClass>>(json); -
用 testDictionary 替换你的,用
Dictionary<string, MyClass>.. 替换你的 restoreDictionary 。为什么你要使用 object ? -
我想使用字符串、对象来捕获不同类型的对象(如 MyClassA、MyClassB 等)。它是具有 ObjectConverters 的更大对象模型的一部分。那部分效果很好,只是字典有问题。
标签: c# serialization json.net deserialization