我正在使用 NewtonSoft 的 JSON 序列化程序。
我想在最终的 JSON 中省略很多字段。为此,我使用以下 JsonSerializerSettings:
string temp;
JsonSerializerSettings js = new JsonSerializerSettings();
js.DefaultvalueHandling = DefaultvalueHandling.Ignore;
temp = JsonConvert.SerializeObject(existing_root,Formatting.Indented,js);
这工作正常:确实省略了所有过时的字段。
但是,我有一个布尔字段,我想查看其中的值(为 false),但我不知道如何执行此操作。我是这样开始的:
[JsonProperty("DIAGNOSTICS")]
public bool DIAGNOSTICS { get; set; }
(我觉得这被省略是正常的,看到了设置。)
然后我尝试了以下方法以强制其存在:
[JsonProperty("DIAGNOSTICS")]
public bool DIAGNOSTICS { get; set; } = true;
(我以为,通过将默认值更改为 true
,实际值 (false
) 将不再被省略,但我错了:该字段仍会从 json 中省略。)
有谁知道对seraliser说的方法:
- “不要省略那个特定的字段?”,或者:
- "不要省略错误的布尔值?"
(如果可能,我更喜欢第一个解决方案)
提前致谢