Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk bersiri. NET enum sebagai rentetan di JSON menggunakan JavaScriptSerializer?

Bagaimana untuk bersiri. NET enum sebagai rentetan di JSON menggunakan JavaScriptSerializer?

DDD
Lepaskan: 2025-01-29 09:21:14
asal
229 orang telah melayarinya

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

Serializing .net enums sebagai rentetan di JSON dengan JavaScriptSerializer

standard .net

sering output enums sebagai nilai integer mereka dalam JSON. Untuk bersiri mereka sebagai rentetan yang mewakili nama mereka, beberapa kaedah wujud. JavaScriptSerializer

Kaedah 1: Memanfaatkan JSON.NET's StringEnumConverter

Pendekatan yang paling mudah dan disyorkan menggunakan JSON.NET yang berkuasa

. Penukar ini boleh digunakan pada tahap definisi enum atau tahap harta: StringEnumConverter

<code class="language-csharp">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; }
}</code>
Salin selepas log masuk
Ini memastikan harta

bersiri sebagai rentetan ("lelaki" atau "perempuan") dalam json yang dihasilkan. Gender

Kaedah 2: Pilihan Konfigurasi Global

Untuk aplikasi yang lebih luas, konfigurasikan

secara global: StringEnumConverter

  • pada tahap enum: Gunakan penukar kepada definisi enum itu sendiri untuk siri rentetan yang konsisten merentasi semua kegunaan enum itu:

    <code class="language-csharp">  [JsonConverter(typeof(StringEnumConverter))]
      public enum Gender { Male, Female }</code>
    Salin selepas log masuk
  • dengan : JsonSerializer tambahkan penukar kepada contoh spesifik untuk mempengaruhi hanya enums yang bersiri dengan contoh itu: JsonSerializer

    <code class="language-csharp">  var serializer = new JsonSerializer();
      serializer.Converters.Add(new StringEnumConverter());
      // ... use serializer to serialize your objects ...</code>
    Salin selepas log masuk
  • dengan : JsonConvert Gunakan penukar secara langsung semasa bersiri:

    <code class="language-csharp">  string json = JsonConvert.SerializeObject(myObject, new StringEnumConverter());</code>
    Salin selepas log masuk

Penyesuaian StringEnumConverter

Pembina

menawarkan penyesuaian selanjutnya, membolehkan kawalan ke atas konvensyen penamaan dan pengendalian nombor. Rujuk dokumentasi JSON.NET untuk pilihan terperinci. StringEnumConverter

Atas ialah kandungan terperinci Bagaimana untuk bersiri. NET enum sebagai rentetan di JSON menggunakan JavaScriptSerializer?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan