Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menyahsiri Tatasusunan JSON bagi Nilai Jenis Campuran ke dalam Kelas Data C# Ditaip Kuat?
Nyahserialisasi tatasusunan nilai dengan corak tetap kepada kelas data yang ditaip kuat
Soalan:
Terdapat cabaran apabila menyahsiri data JSON dalam format tertentu ke dalam kelas data yang ditaip kuat. Data mengandungi tatasusunan pemain dengan rentetan bercampur dan nilai integer, dan kelas pemain terdiri sepenuhnya daripada nilai yang tidak dinamakan, dalam susunan tetap.
Penyelesaian:
Gabungan penukar tersuai dan atribut kontrak data membolehkan penyahserikatan yang cekap:
Buat penukar tersuai:
Laksanakan penukar tersuai yang menukar objek kepada tatasusunan:
<code class="language-c#">public class ObjectToArrayConverter<T> : JsonConverter { // 实现 WriteJson 和 ReadJson 函数 }</code>
Gunakan penukar tersuai dan sifat kontrak data pada Pemain:
Gunakan penukar tersuai pada kelas Pemain dan gunakan atribut kontrak data untuk menentukan susunan sifatnya:
<code class="language-c#">[JsonConverter(typeof(ObjectToArrayConverter<Player>))] [DataContract] public class Player { [DataMember(Order = 1)] public int UniqueID { get; set; } [DataMember(Order = 2)] public string PlayerDescription { get; set; } }</code>
Ubah suai objek akar kepada kamus:
Tukar jenis atribut pemain dalam objek akar kepada kamus, menggunakan nama pengguna pemain sebagai kunci:
<code class="language-c#">public class ScoreboardResults { // ... public Dictionary<string, Player> players { get; set; } }</code>
Contoh:
Contoh kod berikut menunjukkan penyahserikatan menggunakan penyelesaian ini:
<code class="language-c#">using Newtonsoft.Json; var json = "{...}"; var results = JsonConvert.DeserializeObject<ScoreboardResults>(json);</code>
Arahan lain:
Atas ialah kandungan terperinci Bagaimana untuk Menyahsiri Tatasusunan JSON bagi Nilai Jenis Campuran ke dalam Kelas Data C# Ditaip Kuat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!