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