>故障排除c#json deerialization錯誤
>遇到“原始對像是無效的”錯誤,同時從Facebook Graph API(朋友列表)的JSON響應中進行了驗證?本指南提供了一個解決方案。
1。構造您的C#類:
>正確映射JSON數據,定義匹配的C#類。 結構必須鏡像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。用JavaScriptSerializer
>:
>使用JavaScriptSerializer
(在System.Web.Script.Serialization
中使用)將JSON字符串置於定義的類結構中。
<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。代碼示例和輸出:
這是一個完整的示例,展示了該過程:
<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>
輸出:
<code>id: 518523721, name: ftyft id: 527032438, name: ftyftyf id: 527572047, name: ftgft id: 531141884, name: ftftft</code>這種修訂的方法確保了JSON數據的準確映射,防止“原始對象無效”錯誤。 請記住在避難過程中處理潛在的例外。 對於較新的.NET項目,請考慮使用
以進行更強大的JSON處理。
以上是當在C#中挑選Facebook Graph API JSON時,如何解決'原始對象無效”錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!