Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Berjaya Menyahseri JSON ke dalam Kelas C# POCO Menggunakan JsonConvert.DeserializeObject?
Gunakan JsonConvert.DeserializeObject untuk menghuraikan JSON ke kelas C# POCO
Apabila menghadapi ralat (seperti "Tidak dapat menyahsiri..." pengecualian) apabila menyahsiri JSON kepada kelas C# POCO, adalah penting untuk memahami keperluan untuk penyahserikan yang berjaya.
Secara khusus, kaedah JsonConvert.DeserializeObject
memerlukan JSON mematuhi struktur yang dijangkakan dan jenis data yang ditakrifkan dalam kelas POCO.
Menyelesaikan ralat
Kunci untuk menyelesaikan ralat ini terletak pada dua aspek:
Istiharkan sifat senarai dengan betul:
Pastikan respons JSON mengandungi tatasusunan objek untuk sifat yang diisytiharkan sebagai List<T>
dalam kelas POCO. Contohnya:
<code class="language-json"> { "username": "username", // ... 其他属性 "accounts": [ { "github": "github-username" }, // ... 其他帐户 ] }</code>
Dalam kelas POCO, atribut Accounts
hendaklah diisytiharkan sebagai:
<code class="language-csharp"> [JsonProperty("accounts")] public List<Account> Accounts { get; set; }</code>
Gunakan atribut JsonProperty:
JsonProperty
atribut memetakan nama atribut JSON kepada atribut kelas POCO yang sepadan. Secara lalai, nama sifat JSON adalah sensitif huruf besar dan sepadan dengan nama sifat C#. Untuk menyesuaikan pemetaan ini, gunakan atribut JsonProperty
:
<code class="language-csharp"> [JsonProperty("github")] public string GithubUsername { get; set; }</code>
Contoh
Berikut ialah contoh yang diperbetulkan:
<code class="language-csharp">public class User { [JsonProperty("username")] public string Username { get; set; } // ... 其他属性 [JsonProperty("accounts")] public List<Account> Accounts { get; set; } } public class Account { [JsonProperty("github")] public string GithubUsername { get; set; } } // 反序列化代码 var json = @"{ 'username': 'jdoe', // ... 其他属性 'accounts': [{ 'github': 'jdoe-github' }] }"; var user = JsonConvert.DeserializeObject<User>(json);</code>
Atas ialah kandungan terperinci Bagaimana untuk Berjaya Menyahseri JSON ke dalam Kelas C# POCO Menggunakan JsonConvert.DeserializeObject?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!