序列化.net枚舉作為JSON中的字符串,with JavaScriptSerializer
標準.NETJavaScriptSerializer
通常在JSON中輸出枚舉作為其整數值。 為了將它們序列化為代表其名稱的字符串,存在幾種方法。
方法1:利用json.net的StringEnumConverter
>StringEnumConverter
using Newtonsoft.Json; using Newtonsoft.Json.Converters; [JsonConverter(typeof(StringEnumConverter))] public enum Gender { Male, Female } public class Person { public int Age { get; set; } [JsonConverter(typeof(StringEnumConverter))] // Or apply at property level public Gender Gender { get; set; } }
Gender
這可以確保
方法2:全局配置選項
>對於更廣泛的應用程序,在全球範圍內配置StringEnumConverter
>
>:
[JsonConverter(typeof(StringEnumConverter))] public enum Gender { Male, Female }
>:> JsonSerializer
將轉換器添加到特定的實例中,以僅影響由該實例序列化的枚舉:JsonSerializer
var serializer = new JsonSerializer(); serializer.Converters.Add(new StringEnumConverter()); // ... use serializer to serialize your objects ...
:> JsonConvert
在序列化過程中直接應用轉換器:
string json = JsonConvert.SerializeObject(myObject, new StringEnumConverter());
StringEnumConverter
的自定義化
構建器提供了進一步的自定義,可以控制命名約定和數字處理。 有關詳細的選項,請參閱JSON.NET文檔。 StringEnumConverter
以上是如何使用JavaScriptSerializer序列化.NET枚舉作為JSON中的字符串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!