微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 C# 反序列化 JSON

如何解决使用 C# 反序列化 JSON

您需要创建这样的结构:

public class Friends
{

    public List<FacebookFriend> data {get; set;}
}

public class FacebookFriend
{

    public string id {get; set;}
    public string name {get; set;}
}

然后你应该能够做到:

Friends facebookFriends = new JavaScriptSerializer().Deserialize<Friends>(result);

我的班级名称只是一个例子。您应该使用专有名称

添加示例测试:

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<Friends>(json);

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

产生:

id: 518523721, name: ftyft
id: 527032438, name: ftyftyf
id: 527572047, name: ftgft
id: 531141884, name: ftftft

解决方法

我正在尝试将 Facebook 朋友的Graph
API

调用反序列化为对象列表。JSON 对象如下所示:

{"data":[{"id":"518523721","name":"ftyft"},{"id":"527032438","name":"ftyftyf"},{"id":"527572047","name":"ftgft"},{"id":"531141884","name":"ftftft"},{"id":"532652067","name"...

List<EFacebook> facebooks = new JavaScriptSerializer().Deserialize<List<EFacebook>>(result);

它不起作用,因为原始对象无效。我怎样才能反序列化这个?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。