Gunakan ID sebagai nama untuk membuat objek jenis C# yang kuat dari JSON
Apabila menemui tindak balas API seperti objek JSON, nombor ID digunakan sebagai pengenal untuk data, dan mungkin sukar untuk membuat objek C# jenis yang kuat untuk menangani mereka. Marilah kita menyelesaikan masalah ini.
pertimbangkan tindak balas JSON berikut:
Untuk membuat objek jenis yang kuat, kami menentukan:
<code class="language-json">{ "5234592":{ "pollsAndSurveys":{ "questionsAsked":1, ... "pollCount":2}, "attendance":{ "averageAttendanceTimeSeconds":253, ... "percentageAttendance":100} }, "5235291":{ "pollsAndSurveys":{ "questionsAsked":2, ... "pollCount":0}, "attendance":{ "averageAttendanceTimeSeconds":83, ... "percentageAttendance":100} } }</code>
<code class="language-csharp">public class AttendanceStatistics { [JsonProperty(PropertyName = "registrantCount")] public int RegistrantCount { get; set; } // 其他属性 } public class PollsAndSurveysStatistics { [JsonProperty(PropertyName = "pollCount")] public int PollCount { get; set; } // 其他属性 } public class SessionPerformanceStats { [JsonProperty(PropertyName = "attendance")] public AttendanceStatistics Attendance { get; set; } [JsonProperty(PropertyName = "pollsAndSurveys")] public PollsAndSurveysStatistics PollsAndSurveys { get; set; } } public class WebinarPerformanceStats { public List<SessionPerformanceStats> Stats { get; set; } }</code>
Untuk menyelesaikan masalah ini, kita boleh menggunakan kamus sebagai objek akar: WebinarPerformanceStats
json.net berkesan mengendalikan siri dan peranti kamus untuk menukar nama atribut ke dalam kunci kamus. Dalam kes ini, nombor ID akan dijalankan ke dalam kunci kamus. Sekiranya anda sanggup, anda boleh mengisytiharkan mereka sebagai integer yang panjang:
<code class="language-csharp">var dictionary = JsonConvert.DeserializeObject<Dictionary<string, SessionPerformanceStats>>(theJsonResponse);</code>
melalui kaedah ini, kini anda boleh mengubah respons JSON ke belakang
atau<code class="language-csharp">var dictionary = JsonConvert.DeserializeObject<Dictionary<long, SessionPerformanceStats>>(theJsonResponse);</code>
Atas ialah kandungan terperinci Bagaimana untuk membuat objek C# yang sangat ditaip dari JSON dengan IDS sebagai kunci?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!