Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk menyelesaikan kesilapan 'objek primitif tidak sah' apabila deserializing facebook graf aPi json di c#?
Penyelesaian masalah C# json ralat deserialization
menghadapi ralat "objek primitif tidak sah" sementara deserializing respons JSON dari API Graf Facebook (senarai rakan)? Panduan ini menyediakan penyelesaian.
1. Menstrukturkan kelas C# anda:
untuk memetakan data JSON dengan betul, tentukan kelas C yang sesuai. Struktur mesti mencerminkan objek dan tatasusunan bersarang JSON.
<code class="language-csharp">public class FacebookFriendsResponse { public List<FacebookFriend> data { get; set; } } public class FacebookFriend { public string id { get; set; } public string name { get; set; } }</code>
2. Deserialization dengan : JavaScriptSerializer
(tersedia dalam JavaScriptSerializer
) untuk menafikan rentetan JSON ke dalam struktur kelas anda yang ditakrifkan. System.Web.Script.Serialization
<code class="language-csharp">FacebookFriendsResponse facebookFriends; // ... obtain 'result' string from Facebook API call ... using (var js = new System.Web.Script.Serialization.JavaScriptSerializer()) { facebookFriends = js.Deserialize<FacebookFriendsResponse>(result); }</code>
3. Contoh dan output kod:
<code class="language-csharp">string json = @"{""data"":[{""id"":""518523721"",""name"":""ftyft""}, {""id"":""527032438"",""name"":""ftyftyf""}, {""id"":""527572047"",""name"":""ftgft""}, {""id"":""531141884"",""name"":""ftftft""}]}"; using (var js = new System.Web.Script.Serialization.JavaScriptSerializer()) { FacebookFriendsResponse facebookFriends = js.Deserialize<FacebookFriendsResponse>(json); foreach (var friend in facebookFriends.data) { Console.WriteLine($"id: {friend.id}, name: {friend.name}"); } }</code>output:
Pendekatan yang disemak ini memastikan pemetaan yang tepat mengenai data JSON, menghalang ralat "objek primitif tidak sah". Ingatlah untuk mengendalikan pengecualian yang berpotensi semasa proses deserialization. Untuk projek yang lebih baru. NET, pertimbangkan untuk menggunakan
<code>id: 518523721, name: ftyft id: 527032438, name: ftyftyf id: 527572047, name: ftgft id: 531141884, name: ftftft</code>untuk pengendalian JSON yang lebih mantap.
Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan kesilapan 'objek primitif tidak sah' apabila deserializing facebook graf aPi json di c#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!