Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk bersiri enums sebagai rentetan menggunakan JavaScriptSerializer?

Bagaimana untuk bersiri enums sebagai rentetan menggunakan JavaScriptSerializer?

Barbara Streisand
Barbara Streisandasal
2025-01-29 09:31:08843semak imbas

How to Serialize Enums as Strings Using JavaScriptSerializer?

JavaScriptSerializer Enumerated String Serialization Kaedah Penjelasan Terperinci

Apabila menggunakan JavaScriptSerializer bersiri objek yang mengandungi atribut penghitungan, hasil JSON mungkin mengandungi nilai integer dan bukannya perwakilan rentetan. Untuk menyelesaikan masalah ini, anda boleh mempertimbangkan kaedah berikut:

penukar berasaskan atribut

Gunakan atribut untuk menghiasi atribut definisi atau objek, dan tentukan jenis

. Ini akan menunjukkan bahawa program bersiri menukarkan nilai penghitungan kepada rentetan: [JsonConverter] StringEnumConverter

penukar jSonserializer
<code class="language-csharp">using Newtonsoft.Json;
using Newtonsoft.Json.Converters;

[JsonConverter(typeof(StringEnumConverter))]
public Gender Gender { get; set; }</code>

atau, tambah terus ke

:

StringEnumConverter JsonSerializer Konfigurasi Global

anda juga boleh mengkonfigurasi penukar dalam konfigurasi global dalam penghitungan atau
<code class="language-csharp">serializer.Converters.Add(new Newtonsoft.Json.Converters.StringEnumConverter());</code>

Penghitungan: JsonConverter

  • jsonconveter:

    <code class="language-csharp">  [JsonConverter(typeof(StringEnumConverter))]
      public enum Gender { Male, Female }</code>
  • pilihan lain lialingcase:

    Gunakan fungsi pembinaan
    <code class="language-csharp">  JsonConvert.SerializeObject(MyObject, new Newtonsoft.Json.Converters.StringEnumConverter());</code>
    untuk mengawal rentetan rentetan dan sama ada untuk menerima nombor tersebut.
Penyesuaian atribut:

Anda boleh menggunakan atribut

dan menggunakan
    untuk menghiasi penukar.

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

Kenyataan:
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