C# JsonPropertyAttribute中的JSON.NET NullValueHandling未按预期工作
我有一门课是这样的:C# JsonPropertyAttribute中的JSON.NET NullValueHandling未按预期工作,c#,json.net,C#,Json.net,我有一门课是这样的: [JsonObject] public class Condition { [JsonProperty(PropertyName = "_id")] public string Id { get; set; } [JsonProperty(PropertyName = "expressions", NullValueHandling = NullValueHandling.Ignore)] public IEnumerable<Exp
[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; }
}
。。。Json字符串的文本有以下行:
"expressions": null
我的理解是,这不应该发生。我做错了什么?尝试将新的JsonSerializerSettings{NullValueHandling=NullValueHandling.Ignore}作为JsonConvert.SerializeObject方法中的第三个参数传递。您可以使用[JsonProperty(NullValueHandling=NullValueHandling.Ignore)]代替在
Startup.cs上添加此服务:
services.AddControllersWithViews().AddJsonOptions(options =>
{
options.JsonSerializerOptions.IgnoreNullValues = true;
});
六羟甲基三聚氰胺六甲醚。。。但是,我确实希望将相当多的属性呈现为null
,我认为这将为整个序列化应用一个总体策略。您解决了这个问题吗?遇到相同问题时,属性上的属性无效。在我的示例中,该对象的序列化已被自定义CustomCreationConverter
覆盖,但您也可以看到:
services.AddControllersWithViews().AddJsonOptions(options =>
{
options.JsonSerializerOptions.IgnoreNullValues = true;
});