我有一个这样的类(class):

[JsonObject]
public class Condition
{
    [JsonProperty(PropertyName = "_id")]
    public string Id { get; set; }

    [JsonProperty(PropertyName = "expressions", NullValueHandling = NullValueHandling.Ignore)]
    public IEnumerable<Expression> Expressions { get; set; }

    [JsonProperty(PropertyName = "logical_operation")]
    [JsonConverter(typeof(StringEnumConverter))]
    public LogicOp? LogicalOperation { get; set; }

    [JsonProperty(PropertyName = "_type")]
    [JsonConverter(typeof(AssessmentExpressionTypeConverter))]
    public ExpressionType Type { get; set; }
}

但是,当 Expressions 属性为空时,我像这样序列化对象:
 var serialized = JsonConvert.SerializeObject(condition, Formatting.Indented);

... Json 字符串的文本包含以下行:
"expressions": null

我的理解是这不应该发生。我究竟做错了什么?

最佳答案

尝试在 JsonConvert.SerializeObject 方法中将 new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore } 作为第三个参数传递。

关于c# - JsonPropertyAttribute 中的 JSON.NET NullValueHandling 未按预期工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29218601/

10-10 15:18