1. ホーム
  2. c#

[解決済み】Json Serializationからプロパティを除外する方法

2022-04-14 19:14:31

質問

私はDTOクラスを持っていて、それをシリアライズしています。

Json.Serialize(MyClass)

を除外するにはどうすればよいですか? パブリック のプロパティはどうなっていますか?

(私のコードのどこかで使っているので、パブリックである必要があります)。

解決方法は?

Json.Netを使用している場合 属性 [JsonIgnore] は、シリアライズまたはデシリアライズの際に、単にフィールド/プロパティを無視します。

public class Car
{
  // included in JSON
  public string Model { get; set; }
  public DateTime Year { get; set; }
  public List<string> Features { get; set; }

  // ignored
  [JsonIgnore]
  public DateTime LastModified { get; set; }
}

また、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 詳細はこちら