首页 >后端开发 >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