有没有像JsonIgnore那样的东西?

时间:2017-04-27 07:00:51

标签: c# json.net

JsonIgnore属性可用于忽略序列化中的某些属性。我想知道是否可以做相反的事情?所以当有特殊属性时,JsonSerializer会忽略每个属性EXCEPT吗?

2 个答案:

答案 0 :(得分:6)

是的。当您使用[JsonObjectAttribute]标记您的课程并传递MemberSerialization.OptIn参数时,会员serialization is opt-in。然后使用[JsonProperty]标记您的成员以将其包含在序列化中。

[JsonObject(MemberSerialization.OptIn)]
public class Person
{
    [JsonProperty]
    public string Name { get; set; }

    // not serialized because mode is opt-in
    public string Department { get; set; }
}

答案 1 :(得分:1)

MemberSerialization.OptIn的替代方法是使用DataContract / DataMember属性:

[DataContract]
public class Computer
{
  // included in JSON
  [DataMember]
  public string Name { get; set; }
  [DataMember]
  public decimal SalePrice { get; set; }

  // ignored
  public string Manufacture { get; set; }
  public int StockCount { get; set; }
  public decimal WholeSalePrice { get; set; }
  public DateTime NextShipmentDate { get; set; }
}

来源:http://james.newtonking.com/archive/2009/10/23/efficient-json-with-json-net-reducing-serialized-json-size