I'm trying to deserialize a Facebook friend's Graph API call into a list of objects. The JSON object looks like:

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

它不工作,因为原语对象无效.我怎样才能反序列化这个?

推荐答案

您需要创建如下 struct :

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

Json相关问答推荐

如何让jq输出长数据集?

如何在JMESPath中区分空和假?

Jolt需要将缺少的值设置为空并保持相同的位置

Allof Indide的JSON模式之一

在Zig中解析JSON失败

使用jq过滤复杂json对象中的数据

导致此 Kotlin Retrofit2 错误的可能原因有哪些?

Groovy JsonBuilder 在for循环中添加数组元素

如何使用 jq 将字符串数组转换为对象?

父键中的 Perl JSON 数组

从 PySpark 中的复杂 JSON 文件中高效清除 HTML 实体

将 json 文件转换为 json 对象会打乱对象的顺序

将文本转换为 python 列表

Powershell 无法从名为 count 的键中获取价值

在 JSON.stringify() 的输出中隐藏空值

将 JSON 对象推送到 localStorage 中的数组

在 React 中访问子级的父级状态

如何向 json IAM 策略添加 comments ?

SCRIPT5009:JSON未定义

case 类只有一个字段时如何将json转为 case 类