13
public enum TimeFormat
{ 
        @12-hour,
        @24-hour
}

やあ、

json文字列をオブジェクトに逆シリアル化するためにnewtonsoftデシリアライザーを使用します。

JsonDeserializerは列挙型パラメーター名をチェックします。json文字列と同じ場合。文字列を列挙型に変換します。

列挙型パラメーターとしてダッシュ、マイナス(-)文字を列挙型で使用できますか?上記のように使用しようとしましたが、プロジェクトをコンパイルできませんでした。

それから私はこれを試しました。

[JsonConverter(typeof(Newtonsoft.Json.Converters.StringEnumConverter))]
public enum TimeFormat
{
    [JsonProperty("12-hour")]
    hour12,
    [JsonProperty("24-hour")]
    hour24,

}

デシリアライザーはjson文字列をデシリアライズできませんでした。

エラー:要求された値「12時間」が見つかりませんでした

4

1 に答える 1

12

問題を修正しました。

[JsonConverter(typeof(Newtonsoft.Json.Converters.StringEnumConverter))]    
public enum TimeFormat
{
    [System.Runtime.Serialization.EnumMember(Value = "12-hour")]
    hour12,
    [System.Runtime.Serialization.EnumMember(Value = "24-hour")]
    hour24,

}

StringEnumConverterチェックEnumMemberAttribute

于 2013-02-25T17:34:20.287 に答える