我使用 Newtonsoft json 反序列化 facebook graph api 响应。
例如,当我解析用户帖子时,响应如下:
data": [
{
"story": "",
"created_time": "",
"id": ""
}]
我创建了一个类:
public class FacebookPost
{
public string created_time { get; set; }
public string id { get; set; }
public string story { get; set; }
}
Newtonsoft 将值直接附加到类中,我可以使用它们。
我的问题是当我尝试解析注释时,API 响应如下:
"data": [
{
"created_time": "",
"from": {
"name": "",
"id": ""
},
"message": "",
"id": ""
}]
例如,名称和 ID 位于 from 部分内, 我必须如何构建类才能获取
from.name
和 from.id
的值?
非常感谢 ---------------------------- 新增 ------ 我使用以下课程:
public class FacebookCommentsResults
{
public PostComments[] data { get; set; }
public FacebookPagingInfo Paging { get; set; }
}
public class PostComments
{
public string created_time { get; set; }
public From from { get; set; }
}
public class From
{
public string name { get; set; }
public string id { get; set; }
}
行 varcreated_time = comment.created_time;工作正常! 下一行 var name = comment.name;给出错误 --> Reactions.PostComments' 不包含 'name' 的定义,并且找不到接受类型 'Reactions.PostComments' 的第一个参数的扩展方法 'name' (您是否缺少 using 指令或程序集引用?)
当响应为
"data": [
{
"created_time": "",
"from": {
"name": "",
"id": ""
},
"message": "",
"id": ""
}]
现在 json 架构已更改,因此我们必须更改我们的类。原因是
from
是我们主 json 中的另一个对象,因此我们需要以下类来访问 from.id
和 from.name
public class From
{
public string name { get; set; }
public string id { get; set; }
}
public class FacebookPost
{
public string created_time { get; set; }
public From from { get; set; }
public string message { get; set; }
public string id { get; set; }
}
行 varcreated_time = comment.created_time;工作正常!下一个 行 var name = comment.name;给出错误 --> Reactions.PostComments' 不包含“名称”的定义,也没有扩展方法 “name”接受“Reactions.PostComments”类型的第一个参数 可以找到(您是否缺少 using 指令或程序集 参考?)
from
是一个对象,并且在该对象中 name
是一个属性,因此您无法通过给出 comment.name
来访问它。首先,您需要从 from
获取 comment
对象,然后您可以检索 name 属性。