JSON.NET序列化没有属性名称的字典[重复]

2024-03-27

大家

我有字典属性名称的 json 序列化问题

这是我的代码:

public class MyClass
{
    public string A { get; set; }

    public string B { get; set; }

    public Dictionary<string, C> CS { get; set; }
}

public class C
{
    public string C1 { get; set; }

    public string C2 { get; set; }
}

MyClass myObject = new MyClass()
{
    A = "A_Value",
    B = "B_Value",
    CS = new Dictionary<string, C>
    {
        {"CS1", new C() { C1 = "CS1_C1_Value", C2 = "CS1_C2_Value" } },
        {"CS2", new C() { C1 = "CS2_C1_Value", C2 = "CS2_C2_Value" } }
    }
};

JsonConvert.SerializeObject(myObject);

我会得到结果:

{
   "A":"A_Value",
   "B":"B_Value",
   "CS":{
      "CS1":{
         "C1":"CS1_C1_Value",
         "C2":"CS1_C2_Value"
      },
      "CS2":{
         "C1":"CS2_C1_Value",
         "C2":"CS2_C2_Value"
      }
   }
}

如何在没有字典属性名称的情况下序列化它,例如:

{
   "A":"A_Value",
   "B":"B_Value",
   "CS1":{
      "C1":"CS1_C1_Value",
      "C2":"CS1_C2_Value"
   },
   "CS2":{
      "C1":"CS2_C1_Value",
      "C2":"CS2_C2_Value"
   }
}

我尝试删除序列化结果的属性,然后添加序列化字典数据

有更简单的办法解决吗?


如果您愿意将字典转换为Dictionary<string, object>您可以使用[JsonExtensionData]属性

public class MyClass
{
    public string A { get; set; }

    public string B { get; set; }

    [JsonExtensionData]
    public Dictionary<string, object> CS { get; set; }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JSON.NET序列化没有属性名称的字典[重复] 的相关文章

随机推荐