我试图使用Json.NET序列化一个子类.生成的json包含超类的序列化属性,但不包含子类对象的属性.
这似乎与我在SO上找到的问题有关.但不得不写一个JsonConverter似乎有点矫枉过正.
示例子类:
public class MySubclass : List<string>
{
public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
序列化样本:
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);
Run Code Online (Sandbox Code Playgroud)
结果json:
[
"I am an item in the list"
]
Run Code Online (Sandbox Code Playgroud)
我希望结果更像这样:
{
"Name": "Awesome Subclass",
"Items": [
"I am an item in the list"
]
}
Run Code Online (Sandbox Code Playgroud)
也许我只是在序列化时没有使用正确的配置.有人有什么建议吗?
根据文件:
.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>(); }
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3269 次 |
| 最近记录: |