Игнорировать свойство json, если другое свойство возвращает false?

#c# #json

Вопрос:

как следует из названия, у меня есть многоуровневый файл json с множеством свойств. Мне нужно опустить свойство JsonProperty «понижение», если свойство JsonProperty»использование-переход» является ложным.

Я попытался json игнорировать обработку nullvaluehandling, но значение 0.0 не является нулевым значением, так что это не сработает. интересно, следует ли мне использовать значение по умолчанию Json и установить его равным нулю

вот немного кода для тех, кто предпочел бы его увидеть. последние 2 реквизита-это то, о чем я говорю.

КЛАСС JSON

 public partial class Preset {  [JsonProperty("description")]  public string Description { get; set; }   [JsonProperty("f_n")]  public double? FN { get; set; }   [JsonProperty("f_z")]  public double? FZ { get; set; }   [JsonProperty("guid")]  public Guid Guid { get; set; }   [JsonProperty("n")]  public double N { get; set; }   [JsonProperty("n_ramp")]  public double? NRamp { get; set; }   [JsonProperty("name")]  public string Name { get; set; }   [JsonProperty("tool-coolant")]  public string ToolCoolant { get; set; }   [JsonProperty("use-stepdown")]  public bool UseStepdown { get; set; }   [JsonProperty("use-stepover")]  public bool UseStepover { get; set; }   [JsonProperty("v_c")]  public double VC { get; set; }   [JsonProperty("v_f")]  public double? VF { get; set; }   [JsonProperty("v_f_leadIn")]  public double? VFLeadIn { get; set; }   [JsonProperty("v_f_leadOut")]  public double VFLeadOut { get; set; }   [JsonProperty("v_f_plunge")]  public double VFPlunge { get; set; }   [JsonProperty("v_f_ramp")]  public double VFRamp { get; set; }   [JsonProperty("v_f_retract")]  public double VFRetract { get; set; }   [JsonProperty("stepdown", NullValueHandling = NullValueHandling.Ignore)]  public double Stepdown { get; set; }   [JsonProperty("stepover", NullValueHandling = NullValueHandling.Ignore)]  public double Stepover { get; set; } }  

Ответ №1:

Оказывается, быстрый взгляд на stackoverflow-это был очень простой ответ.

поменял двойной на двойной? позволяя значению быть нулевым.

 [JsonProperty("stepdown", NullValueHandling = NullValueHandling.Ignore)] public double Stepdown { get; set; }  [JsonProperty("stepover", NullValueHandling = NullValueHandling.Ignore)] public double Stepover { get; set; }  

Для

 [JsonProperty("stepdown", NullValueHandling = NullValueHandling.Ignore)] public double? Stepdown { get; set; }  [JsonProperty("stepover", NullValueHandling = NullValueHandling.Ignore)] public double? Stepover { get; set; }