相关疑难解决方法(0)

如何使用Json.Net将Dictionary序列化为其父对象的一部分

我正在使用Json.Net进行序列化.我有一个带有词典的类:

public class Test
{
    public string X { get; set; }

    public Dictionary<string, string> Y { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我可以以某种方式序列化此对象以获取以下JSON

{
    "X" : "value",
    "key1": "value1",
    "key2": "value2"
}
Run Code Online (Sandbox Code Playgroud)

其中"key1","key2"是字典中的键?

c# serialization json.net

35
推荐指数
2
解决办法
2万
查看次数

JSON 序列化,类继承自 Dictionary&lt;T,V&gt;

我有一个当前从 Dictionary 继承的类,然后向其中添加了一些第一类成员属性。大致:

public class Foo : Dictionary<string, string>
{
   public string Bar { get; set; }
   public string Baz { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

然而,将此对象的实例序列化为 JSON 后,序列化程序似乎只发出我存储在字典中的键/值对。即使我将 DataMember 属性应用于新的第一类属性,JSON 序列化程序似乎也不知道如何处理这些属性,而是忽略它们。

我假设我缺少一些基本的基本知识,但是在 .net 的 JSON 序列化器上搜索代码示例和文档时,我只发现了一些与我正在做的事情不太匹配的琐碎示例。我们从其他基类派生的所有其他类似乎都没有表现出这个问题,特别是从通用字典派生的这个类让我们感到不舒服。

[编辑] 除了将字典作为一流属性移入 Foo 之外,还有什么办法可以实现这一点吗?我假设挂断是序列化器不知道如何“命名”字典以将其与其他成员区分开来?

c# serialization json dictionary

5
推荐指数
1
解决办法
3744
查看次数

标签 统计

c# ×2

serialization ×2

dictionary ×1

json ×1

json.net ×1