我正在尝试使用 Json.NET 序列化子类。生成的 json 包含超类的序列化属性,但是not子类对象的属性。
这似乎与我发现的一个问题有关这里就这样 https://stackoverflow.com/q/5863496/498969。但必须写一个JsonConverter
似乎有点矫枉过正。
示例子类:
public class MySubclass : List<string>
{
public string Name { get; set; }
}
序列化示例:
MySubclass myType = new MySubclass() { Name = "Awesome Subclass" };
myType.Add("I am an item in the list");
string json = JsonConvert.SerializeObject(myType, Newtonsoft.Json.Formatting.Indented);
生成的 json:
[
"I am an item in the list"
]
我预计结果会更像这样:
{
"Name": "Awesome Subclass",
"Items": [
"I am an item in the list"
]
}
也许我只是在序列化时没有使用正确的配置。有人有什么建议吗?
根据文档 http://james.newtonking.com/json/help/index.html?topic=html/SerializationGuide.htm:
.NET 列表(继承自的类型IEnumerable
) 和 .NET 数组是
转换为 JSON 数组。因为JSON数组只支持一定范围
值而不是属性,任何附加属性和字段在 .NET 集合上声明没有序列化.
所以,不要子类化List<T>
,只需添加第二个属性。
public class MyClass
{
public List<string> Items { get; set; }
public string Name { get; set; }
public MyClass() { Items = new List<string>(); }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)