使用JavaScriptSerializer序列化包含枚舉屬性的對象時,JSON結果可能包含整數值而不是字符串表示。為了解決這個問題,您可以考慮以下幾種方法:
使用[JsonConverter]
屬性裝飾枚舉定義或對象屬性,並指定StringEnumConverter
類型。這將指示序列化程序將枚舉值轉換為字符串:
<code class="language-csharp">using Newtonsoft.Json; using Newtonsoft.Json.Converters; [JsonConverter(typeof(StringEnumConverter))] public Gender Gender { get; set; }</code>
或者,直接將StringEnumConverter
添加到JsonSerializer
中:
<code class="language-csharp">serializer.Converters.Add(new Newtonsoft.Json.Converters.StringEnumConverter());</code>
您也可以在枚舉或JsonConverter
中全局配置轉換器:
枚舉:
<code class="language-csharp"> [JsonConverter(typeof(StringEnumConverter))] public enum Gender { Male, Female }</code>
JsonConverter:
<code class="language-csharp"> JsonConvert.SerializeObject(MyObject, new Newtonsoft.Json.Converters.StringEnumConverter());</code>
StringEnumConverter(NamingStrategy, Boolean)
構造函數來控製字符串大小寫以及是否接受數字。 JsonConverter
並使用[JsonConverter]
屬性進行裝飾來自定義轉換器的行為。 以上是如何使用JavaScriptSerializer序列化作為字符串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!