gpt4 book ai didi

c# - 如何在强制 JSON 序列化中存在 "false" bool 值的同时省略过时的字段?

转载 作者:行者123 更新时间:2023-12-04 13:07:58 25 4
gpt4 key购买 nike

我正在使用 NewtonSoft 的 JSON 序列化程序。

我想在最终的 JSON 中忽略很多字段。为此,我使用以下 JsonSerializerSettings:

string temp;
JsonSerializerSettings js = new JsonSerializerSettings();
js.DefaultValueHandling = DefaultValueHandling.Ignore;
temp = JsonConvert.SerializeObject(existing_root, Formatting.Indented, js);

这工作正常:确实省略了所有过时的字​​段。

但是,我有一个 bool 字段,我想查看它的值(它是 false),但我不知道该怎么做。我是这样开始的:

[JsonProperty("DIAGNOSTICS")]
public bool DIAGNOSTICS { get; set; }

(我发现这个被省略很正常,看到了设置。)

然后我尝试了以下以强制其存在:

[JsonProperty("DIAGNOSTICS")]
public bool DIAGNOSTICS { get; set; } = true;

(我以为,通过将默认值更改为true,真实值(false)不会再被省略,但我错了:该字段仍然得到从 json 中省略。)

有没有人知道如何对序列化器说:

  • 不要省略那个特定的字段?”,或者:
  • 不要省略为假的 bool 值?

(如果可能的话,我更喜欢第一种解决方案)

提前致谢

最佳答案

您应该能够将您的 JsonProperty 属性更改为:

[JsonProperty("DIAGNOSTICS", DefaultValueHandling = DefaultValueHandling.Populate)]

Try it online

关于c# - 如何在强制 JSON 序列化中存在 "false" bool 值的同时省略过时的字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68527116/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com