使用 JSON.NET 反序列化和序列化字典<string, object>

莫腾GR

如果我有一个字典并将例如类 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

莫腾GR

问题是 Json.Net 无法知道反序列化和再次序列化的字符串、对象应该属于特定类型。幸运的是,有一个名为 TypeNameHandling 的属性告诉 Json.Net 将类型保存在 json 字符串中。使用此选项进行序列化和反序列化效果很好:-)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用GSON反序列化Map <String,Object>

使属性反序列化但不使用json.net序列化

如何使用Json.Net使用自定义键对字典进行序列化/反序列化?

使用Json.NET从Dictionary <string,T>派生的T类型的序列化和反序列化

使用Json.NET对混合类型的数组进行序列化/反序列化

使用json.net对对象属性进行条件序列化/反序列化

使用Json.NET对包含数字键的反序列化JSON进行反序列化

使用Json.net使用接口值反序列化复杂的嵌套字典类型

使用JSON.net反序列化

使用不同的名称通过Json.Net进行序列化和反序列化

使用C#.NET Core反序列化json

使用JSON.NET序列化/反序列化动态属性名称

如何使用Json.Net和Xamarin使用SubTypes反序列化JSON?

Python JSON序列化字典<String,Object>

如何使Json.NET序列化和反序列化还实现IDictionary <string,object>的自定义动态类型的声明属性?

C#使用JSON.NET反序列化Dictionary <(Enum,Enum),string>

使用JSON.NET和生成的类反序列化元素

使用JSON.NET反序列化JSON数据

使用JSON.net反序列化对象

JSON使用.NET DataContractJsonSerializer序列化器与字典进行序列化/反序列化

使用字典作为属性反序列化JSON将导致空.NET字典<string,string>

JSON.NET:使用LINQ从JSON反序列化

使用JSON.net动态反序列化

使用JSON.Net反序列化器反序列化动态JSON

如何使用非标准(和不同的)属性名称反序列化JSON(在.NET中)

反序列化Json String .net

使用json.net反序列化JSON

如何使用Json.NET对数组的ArrayList进行序列化和反序列化

使用 json .net 反序列化数组数组