首頁 > 後端開發 > C++ > 如何使用JavaScriptSerializer序列化.NET枚舉作為JSON中的字符串?

如何使用JavaScriptSerializer序列化.NET枚舉作為JSON中的字符串?

DDD
發布: 2025-01-29 09:21:14
原創
294 人瀏覽過

How to Serialize a .NET Enum as a String in JSON using JavaScriptSerializer?

序列化.net枚舉作為JSON中的字符串,with JavaScriptSerializer

標準.NETJavaScriptSerializer通常在JSON中輸出枚舉作為其整數值。 為了將它們序列化為代表其名稱的字符串,存在幾種方法。

>

方法1:利用json.net的StringEnumConverter

>StringEnumConverter

>最直接,最推薦的方法利用JSON.NET的功能強大的
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中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板