2017-08-22 21 views
0

json.netを使用してオブジェクトをJSONにシリアル化するクラスがあります。クラスには、通常は直列化したくないプロパティがいくつかあるので、JsonIgnoreでマークしました。オブジェクトをJSONにシリアル化する - 動的プロパティのシリアル化

public class SomeClass 
{ 
    [JsonIgnore] 
    public int ID { get; set; } 
    public int SecondID { get; set; } 
    public string Name { get; set; } 
} 

は今、別の文脈で、私は同じクラスのオブジェクトをエクスポートしたいが、ここで私は(私は最初のコンテキストに無視されるようにフラグを立てていること)もIDをエクスポートします。

プロパティをJSONにシリアル化する前に無視するように動的にフラグを設定することは可能ですか、それを達成するためにカスタムシリアライザを作成する必要がありますか?

どのようにすれば、できるだけ簡単に目的の動作を達成できますか?ここで

答えて

0

あなたが無視したいプロパティのリストを作ることができます。

[JsonIgnore] 
    public List<Something> Somethings { get; set; } 

//Ignore by default 
    public List<Something> Somethings { get; set; } 

JsonConvert.SerializeObject(myObject, 
          Newtonsoft.Json.Formatting.None, 
          new JsonSerializerSettings { 
           NullValueHandling = NullValueHandling.Ignore 
          }); 
関連する問題