我想使用 NewtonSoft JSON 序列化列表,我需要在序列化时忽略其中一个属性,我得到了以下代码

public class Car
{
  // included in JSON
  public string Model { get; set; }
  // ignored
  [JsonIgnore]
  public DateTime LastModified { get; set; }
}

但是我在我的应用程序中的很多地方都使用这个特定类的Car,所以我只想在一个地方排除该选项。

我可以在需要的特定位置动态添加[JsonIgnore]吗?我怎么做 ?

最佳答案

无需做其他答案中解释的复杂工作。

NewtonSoft JSON为此提供了内置功能:

public bool ShouldSerializeINSERT_YOUR_PROPERTY_NAME_HERE()
{
    if(someCondition){
        return true;
    }else{
        return false;
    }
}

它称为“条件属性序列化”和文档can be found here

警告:首先,重要的是要除去[JsonIgnore]属性上方的{get;set;}。否则,它将覆盖ShouldSerializeXYZ行为。

关于c# - NewtonSoft在运行时添加JSONIGNORE,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25157511/

10-13 06:20