Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menyahseri Tatasusunan JSON bagi Nilai Jenis Campuran ke dalam Kelas C# yang Ditaip Kuat?
Menyahsiri Tatasusunan JSON dengan Jenis Data Campuran ke dalam Kelas C#
Panduan ini menangani kerumitan menyahsiri data JSON di mana strukturnya memberikan cabaran untuk pemetaan langsung kepada kelas C# taip kuat. Khususnya, kami akan menangani senario yang melibatkan tatasusunan jenis data bercampur dalam struktur yang kelihatan seperti kamus.
Masalahnya:
Struktur JSON biasa mungkin membentangkan data di mana:
Penyelesaian:
Beberapa teknik boleh mengatasi halangan ini:
1. Memanfaatkan ObjectToArrayConverter
:
Json.NET ObjectToArrayConverter
menyediakan mekanisme yang berkuasa untuk memetakan tatasusunan nilai kepada sifat objek C#. Ini memerlukan pertimbangan yang teliti terhadap susunan harta tanah.
<code class="language-csharp">[JsonConverter(typeof(ObjectToArrayConverter<Player>))] public class Player { [JsonProperty(Order = 1)] public int UniqueID { get; set; } [JsonProperty(Order = 2)] public string PlayerDescription { get; set; } // ... other properties }</code>
Sifat JsonProperty
atribut Order
adalah penting; ia memastikan pemetaan elemen tatasusunan yang betul kepada sifat berdasarkan jujukannya.
2. Menstruktur semula Objek Akar:
Pendekatan yang lebih mudah mungkin melibatkan penstrukturan semula objek akar untuk mewakili secara langsung sifat data seperti kamus.
<code class="language-csharp">public class ScoreboardResults { // ... other properties public Dictionary<string, Player> Players { get; set; } }</code>
Ini memudahkan penyahserikatan dengan ketara, kerana kunci dan nilai kamus secara langsung sepadan dengan struktur JSON.
3. Penukar Tersuai (Lanjutan):
Untuk senario yang kompleks, JsonConverter tersuai menawarkan kawalan yang paling banyak. Ini membolehkan logik penghuraian rumit yang disesuaikan dengan struktur JSON tertentu.
Contoh (Menggunakan ObjectToArrayConverter
):
<code class="language-csharp">// Sample JSON (replace with your actual JSON) string jsonString = "..."; // Deserialize using ObjectToArrayConverter var results = JsonConvert.DeserializeObject<ScoreboardResults>(jsonString); // Access player data foreach (var kvp in results.Players) { Console.WriteLine($"{kvp.Key}: {kvp.Value.UniqueID} - {kvp.Value.PlayerDescription}"); }</code>
Ingat untuk memasang pakej Newtonsoft.Json NuGet untuk fungsi Json.NET. Pilih penyelesaian yang paling sesuai dengan struktur dan kerumitan JSON anda. Penstrukturan semula objek akar selalunya memberikan penyelesaian yang paling mudah dan paling boleh diselenggara. ObjectToArrayConverter
ialah alat berkuasa untuk senario yang lebih rumit yang memerlukan kawalan pesanan harta benda yang tepat. Penukar tersuai harus dipertimbangkan hanya apabila kaedah lain tidak mencukupi.
Atas ialah kandungan terperinci Bagaimana untuk Menyahseri Tatasusunan JSON bagi Nilai Jenis Campuran ke dalam Kelas C# yang Ditaip Kuat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!