我有一个类似的课程:
[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
属性为null时,我会像这样序列化对象:
var serialized = JsonConvert.SerializeObject(condition, Formatting.Indented);
... Json字符串的文本有以下行:
"expressions": null
我的理解是,这不应该发生。我做错了什么?
答案 0 :(得分:0)
尝试将new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }
作为JsonConvert.SerializeObject方法中的第三个参数传递。
答案 1 :(得分:0)
您可以改用[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
答案 2 :(得分:0)
将此服务添加到Startup.cs
上:
services.AddControllersWithViews().AddJsonOptions(options =>
{
options.JsonSerializerOptions.IgnoreNullValues = true;
});