JsonIgnore
属性可用于忽略序列化中的某些属性。我想知道是否可以做相反的事情?所以当有特殊属性时,JsonSerializer会忽略每个属性EXCEPT吗?
答案 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; }
}