在我的POCO对象中,我有一些子对象可能有也可能没有一些数据。但是,它们在对象初始化期间声明,因此它们不是空的。
当我将它们转换为JSON对象时,即使我将NullValueHandling设置为Ignore也会显示它们,因为它们不是null。
当我将POCO对象序列化为JSON时,处理它们的最佳方法是什么,以便它们不显示?
以下是POCO对象的示例:
public class Person
{
[JsonProperty("id")]
public Guid Id { get; set; }
[JsonProperty("firstName")]
public string FirstName { get; set; }
[JsonProperty("lastName")]
public string LastName { get; set; }
[JsonProperty("addresses", NullValueHandling = NullValueHandling.Ignore)]
public List<Address> Addresses { get; set; } = new List<Address>();
}
在这个例子中,即使我没有这个人的任何地址,在序列化人员类时,我看到addresses: []
为空数组。
我真的希望能够忽略所有没有数据的属性。处理这个问题的最佳方法是什么?
答案 0 :(得分:1)
答案似乎很简单: Can Newtonsoft Json.NET skip serializing empty lists?
如果您被允许扩展原始类,则添加一个 ShouldSerializePropertyName函数。这应该返回一个 指示是否应该序列化该属性的布尔值 对于当前的类实例。在你的例子中,这可能看起来 像这样(没有经过测试,但你应该得到图片):