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

时间:2018-02-17 19:30:19

标签: 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 });

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

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

这是一种情况,我必须递归遍历生成的对象并手动删除空值&#d; d属性?或者是否有一些魔术棒说"只是在序列化时删除这些空值"

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

0 个答案:

没有答案