Newtonsoft JSON在合并和/或序列化时删除null属性

And*_*ndy 5 c# json json.net

请考虑以下情形:

var s1 = "{\"hello\":\"world\", \"test\":\"somevalue\"}";
var s2 = "{\"hello\":\"world\", \"test\":null}";

var j1 = JObject.Parse(s1);
var j2 = JObject.Parse(s2);

j1.Merge(j2, new JsonMergeSettings { MergeArrayHandling = MergeArrayHandling.Union, MergeNullValueHandling = MergeNullValueHandling.Merge });

var jf = JsonConvert.SerializeObject(j1, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore });
Run Code Online (Sandbox Code Playgroud)

结果jf是{"hello":"world", "test":null}

我如何调用库以获得合并的结果: {"hello":"world"}

这是一个我必须递归遍历结果对象并手动删除空值属性的情况吗?或者是否有一些魔术棒说"在序列化时只丢弃这些空值"

我知道JsonProperty -> NullValueHandling,但这些是我正在使用的动态对象,所以模型是未知的.