使用 C# 反序列化 JSON
在嘗試將 JSON 對象反序列化為對象列表時,由於無效的原始對象,可能會出現困難。本文將提供解決此問題的方案,使您可以成功反序列化此類 JSON 對象。
考慮以下 JSON 對象,它表示通過 Graph API 獲取的 Facebook 好友列表:
<code>{ "data": [ { "id": "518523721", "name": "ftyft" }, // 更多数据... ] }</code>
要反序列化此 JSON 對象,我們需要創建一個與其模式匹配的結構。在本例中,它是一個 FacebookFriend 對象列表:
<code class="language-csharp">public class FriendData { public List<FacebookFriend> data { get; set; } } public class FacebookFriend { public string id { get; set; } public string name { get; set; } }</code>
定義這些結構後,我們現在可以使用 JavaScriptSerializer 反序列化 JSON 對象:
<code class="language-csharp">FriendData facebookFriends = new JavaScriptSerializer().Deserialize<FriendData>(result);</code>
這將創建一個包含 FacebookFriend 對象列表的 FriendData 對象,從而可以訪問各個好友數據。請注意,此處使用的類名僅用於說明目的;為您的項目選擇合適的類名。
為了演示反序列化過程,請考慮以下測試代碼:
<code class="language-csharp">string json = @"{""data"":[{""id"":""518523721"",""name"":""ftyft""}, {""id"":""527032438"",""name"":""ftyftyf""}, {""id"":""527572047"",""name"":""ftgft""}, {""id"":""531141884"",""name"":""ftftft""}]}"; FriendData facebookFriends = new JavaScriptSerializer().Deserialize<FriendData>(json); foreach (var item in facebookFriends.data) { Console.WriteLine("id: {0}, name: {1}", item.id, item.name); }</code>
執行此代碼將產生以下輸出:
<code>id: 518523721, name: ftyft id: 527032438, name: ftyftyf id: 527572047, name: ftgft id: 531141884, name: ftftft</code>
這演示了將 JSON 對象成功反序列化為 FacebookFriend 對象列表的過程。
以上是如何成功地對包含c#列表的JSON對象進行驗證?的詳細內容。更多資訊請關注PHP中文網其他相關文章!