2017-12-28 25 views
0

オブジェクトをシリアル化する際に、文字列表現ではなくenumのプロパティ値を取得するために、どのような設定を変更する必要がありますか?私は以下のクラスを持っています。シリアル化するときに、文字列表現ではなく、enumのint値を取得するために、どのような設定を変更する必要がありますか?

NOW --->私のJSON =

{ "ProductId" : 22222, 
    "ContainerType" : 1111, 
    "SolidForm" : "Solid" 
} 

(例えば)

public class ProductModel 
{ 
    public long ProductId { get; set; } 

    public int ContainerType { get; set; } 

    public SolidForm SolidForm { get; set; } 
} 

が、私はシリアル化後にこれを必要とします。 (列挙型ではありません)

{ "ProductId" : 22222, 
    "ContainerType" : 1111, 
    "SolidForm" : 1 
} 

私のオブジェクト内のすべての列挙型をintに変換したいと思います。 JSONシリアライズ

JsonSerializerSettings = new JsonSerializerSettings 
    { 
     DateFormatHandling = DateFormatHandling.MicrosoftDateFormat, 
     Error = delegate (object sender, ErrorEventArgs args) 
     { 
      args.ErrorContext.Handled = true; 
     } 
    } 

答えて

1

この私の設定Newtonsoft.Jsonのデフォルトはint型として列挙型をシリアル化することです。 Newtonsoft.Jsonを意味すると仮定します。

enumは属性[JsonConverter(typeof(StringEnumConverter))]で飾られていますか?

関連する問題