c# - 使用 C# 反序列化 JSON

我正在尝试反序列化 Facebook friend 的 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);

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

最佳答案

你需要创建一个这样的结构:

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);

我的类(class)名称只是一个例子。您应该使用专有名称。

添加样本测试:

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

https://stackoverflow.com/questions/7895105/

相关文章:

java - Gson - 从 Json 转换为类型化的 ArrayList

java - Java 中的 pretty-print JSON

json - 如何修改新 PostgreSQL JSON 数据类型中的字段?

javascript - 打印 JSON 解析的对象?

ajax - 将 .ajax() 与 JSONP 一起使用的基本示例?

php - 如何使用 PHP 从 JSON 中提取数据?

c# - 在 C# 中读取和解析 Json 文件

arrays - 如何使用jq根据内部数组中的值过滤对象数组?

json - 如何在 Go 的 POST 请求中发送 JSON 字符串

jquery - 将数组传递给 $.ajax() 中的 ajax 请求