首頁 > 後端開發 > C++ > C#構造如何有效地從API中估算複雜的JSON對象?

C#構造如何有效地從API中估算複雜的JSON對象?

Linda Hamilton
發布: 2025-02-02 06:56:11
原創
893 人瀏覽過

How Can C# Structs Efficiently Deserialize Complex JSON Objects from APIs?

利用C#結構體高效反序列化複雜JSON對象

當處理複雜的JSON對象時,僅僅反序列化成基本類型列表往往不夠。為了有效處理嵌套結構,建議使用C#結構體。

問題: 從Facebook Graph API獲取的JSON對象由於無效的原始對象而無法反序列化成對象列表。

解決方案:

  1. 定義結構體: 創建單獨的結構體來表示外部和內部JSON對象。例如,考慮一個包含FacebookFriend結構體列表的Friends結構體:
public class Friends
{
    public List<FacebookFriend> data { get; set; }
}

public class FacebookFriend
{
    public string id { get; set; }
    public string name { get; set; }
}
登入後複製
  1. 反序列化JSON: 使用JavaScriptSerializer將JSON反序列化到Friends結構體:
Friends facebookFriends = new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize<Friends>(result);
登入後複製
  1. 訪問內部對象: 現在可以通過迭代Friends結構體的data列表來訪問內部對象:
foreach (var item in facebookFriends.data)
{
    Console.WriteLine("id: {0}, name: {1}", item.id, item.name);
}
登入後複製

示例:

string json =
    @"{""data"":[{""id"":""518523721"",""name"":""ftyft""}, {""id"":""527032438"",""name"":""ftyftyf""}, {""id"":""527572047"",""name"":""ftgft""}, {""id"":""531141884"",""name"":""ftftft""}]}";

Friends facebookFriends = new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize(json);

foreach (var item in facebookFriends.data)
{
    Console.WriteLine("id: {0}, name: {1}", item.id, item.name);
}
登入後複製

輸出:

<code>id: 518523721, name: ftyft
id: 527032438, name: ftyftyf
id: 527572047, name: ftgft
id: 531141884, name: ftftft</code>
登入後複製

以上是C#構造如何有效地從API中估算複雜的JSON對象?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板