Json.NET - 将EmptyOrWhiteSpace字符串属性转换为null

时间:2016-05-26 11:57:00

标签: c# .net json

是否可以使用[JsonProperty]属性将任何空字符串或填充空格转换为null?

类似的东西:

 public class Request
 {
     [JsonProperty(NullOrWhiteSpaceValueHandling)] 
     public string Description {get;set;}
 }

与渲染时跳过空值的方式相同。 当这个属性为"空"该值未设置。

1 个答案:

答案 0 :(得分:3)

您需要实现自定义JsonConverter并将其分配给TrimmingConverter属性的JsonProperty属性。有一个编写客户TrimmingConverter详细here的示例。一旦你有类似于这个实现的东西,你应该能够设置NullValueHandlingItemConverterType属性。这将确保转换器将修剪字符串,如果它为null或空或空格 - 它将被忽略以进行序列化。

public class Request
{
    [
       JsonProperty(NullValueHandling = NullValueHandling.Ignore, 
                    ItemConverterType = typeof(TrimmingConverter))
    ] 
    public string Description { get; set; }
}

以下是JsonProperty的官方文档。