首頁 >後端開發 >C++ >如何成功地對包含c#列表的JSON對象進行驗證?

如何成功地對包含c#列表的JSON對象進行驗證?

Patricia Arquette
Patricia Arquette原創
2025-02-02 07:06:08415瀏覽

How to Successfully Deserialize JSON Objects Containing Lists in C#?

使用 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn