Newtonsoft json 和图形 API

问题描述 投票:0回答:1

我使用 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 指令或程序集引用?)

json facebook facebook-graph-api json.net
1个回答
0
投票

当响应为

"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 属性。

© www.soinside.com 2019 - 2024. All rights reserved.