当我静止一个对象时,对于某些字符串属性,我想输出空字符串,而不是忽略或输出null。
根据牛顿的文档,我可以这样做:
public class Data
{
public int ProductId { get; set; }
[DefaultValue("")]
[JsonProperty(DefaultValueHandling = DefaultValueHandling.Include)]
public string LargeData { get; set; }
}
但是,在我的测试案例中,它仍然输出null
Data D1 = new Data()
{
ProductId = 1
};
var b = JsonConvert.SerializeObject(D1);
输出为{"ProductId":1,"LargeData":null}
。我做错了吗?
看着 DefaultValueHandling
看起来没有任何方法。
如果 delelialization ,默认值属性仅在JSON中指定的属性时使用。忽略/包括选择是序列化时相关的选择,而这些选择不会影响序列化的值 - 只是是否应该序列化。。P>
除非您有实际将值设置为null的代码,否则最简单的选项是将属性默认为"从.NET角度:
"。public class Data
{
public int ProductId { get; set; }
public string LargeData { get; set; } = "";
}