小编典典

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

c#

我正在使用Json.Net进行序列化。我有一堂课有字典:

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

    public Dictionary<string, string> Y { get; set; }
}

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

{
    "X" : "value",
    "key1": "value1",
    "key2": "value2"
}

其中“ key1”,“ key2”是词典中的键?


阅读 373

收藏
2020-05-19

共1个答案

小编典典

如果您使用的是Json.Net
5.0.5
或更高版本,并且愿意将字典的类型从更改Dictionary<string, string>Dictionary<string, object>,那么一种简单的方法就可以将所需的[JsonExtensionData]属性添加到字典属性中,例如:

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

    [JsonExtensionData]
    public Dictionary<string, object> Y { get; set; }
}

然后,已标记字典的键和值将被序列化为父对象的一部分。好处是它也可以反序列化:JSON中与类成员不匹配的任何属性都将放入字典中。

2020-05-19