首页 > 后端开发 > 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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板