Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# JsonPropertyAttribute中的JSON.NET NullValueHandling未按预期工作_C#_Json.net - Fatal编程技术网

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;
});