JSON.NET序列化继承自List<T>的类的附加条件属性

4

我有一个集合类,继承自List<T>

public class TestCollection : List<Test>
{
   public virtual String SomeTestingDetail { get; set; }
}

Json.NET可以序列化测试对象的数组,但会省略SomeTestingDetail属性。

有没有办法强制序列化这个属性呢?


2
提示:您期望该JSON的外观是什么? - Chris Shain
@Chris,我期望它包含一个附加字段。{"$id": 1, MyAdditionalField: "here", "$values":[<集合元素>]}。没有理由认为它会产生重大变化。至少在我现在使用的JSON.NET版本和我的当前设置中是如此。 - Nikola Radosavljević
1个回答

2
JSON.net序列化器将List转换为数组,集合中直接的任何属性都将被忽略。根据Json.Net网站上的说明:“因为JSON数组仅支持一系列值而不是属性,所以在.NET集合上声明的任何其他属性和字段都不会被序列化。”更好的方法是使用一个类,该类具有字符串属性和保存项目列表的属性。 http://james.newtonking.com/projects/json/help/

我在文档中没有看到这个。谢谢你指出来。 - Aaron Fischer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接