我使用Newtonsoft json对facebook图形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": ""
}]
例如,name和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; }
}
行var created_time=comment.created_time;工作良好!下一行var name=comment.name;给出错误-->反应。PostComments"不包含"name"的定义,也不包含接受第一个"Reactions"类型参数的扩展方法"name"。可以找到PostComments(您是否缺少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; }
}
编辑
行var created_time=comment.created_time;工作良好!下一个行var name=注释名称;给出错误-->反应。PostComments不包含"name"的定义,也没有扩展方法"name"接受类型为"Reactions"的第一个参数。PostComments可以找到(是否缺少using指令或程序集参考?)
from
是一个对象,而在该对象中name
是一个属性,因此不能通过给定comment.name
来访问它。首先需要从comment
中获取from
对象,然后可以检索name属性。