使用JSON.NET将Facebook feed从JSON转换为类型化的对象

皮皮书呆子

问题是,我收到了来自facebook(页面供稿)的帖子列表,该列表偶尔将多个评论保存在post对象内部的数组中。只有帖子的第一条评论才能正确解析。不知何故,第二和以后的注释都没有被解析。

这是我要进行的JSON:

{
  "data": [ //Root object
  { //Post object
     "id": "153411918116843_304953306296036",
     "from": {
        "category": "Sports/recreation/activities",
        "category_list": [
           {
              "id": "124887510918208",
              "name": "Swimming Pool"
           }
        ],
        "name": "Twentebad",
        "id": "153411918116843"
     },
     "link": "http://dlvr.it/5bBKPx",
     "picture": "irrelevant",
     "message": "Onderzoek renovatie Twentebad! http://dlvr.it/5bBKPx",
     "created_time": "2014-05-07T09:44:18+0000",
     "comments": { // Collective comments object


        // Actual comments objects in array !!!!! ONLY FIRST GETS PARSED !!!!
        "data": [
           { //Comment object
              "id": "304953306296036_304959069628793",
              "from": {
                 "id": "884483928243965",
                 "name": "Selena Suzan Valentino"
              },
              "message": "Twentepalace",
              "can_remove": false,
              "created_time": "2014-05-07T10:32:26+0000",
              "like_count": 0,
              "user_likes": false
           },
           { Unparsed comment object
              "id": "304953306296036_305126702945363",
              "from": {
                 "id": "884483928243965",
                 "name": "Selena Suzan Valentino"
              },
              "message": "Na baantjes trekken vooral heerlijk...",
              "can_remove": false,
              "created_time": "2014-05-08T09:12:43+0000",
              "like_count": 0,
              "user_likes": false
           },
           { //Unparsed comment object
              "id": "304953306296036_305126622945371",
              "from": {
                 "id": "884483928243965",
                 "name": "Selena Suzan Valentino"
              },
              "message": "Wil infrarood sauna weer terug komt...",
              "can_remove": false,
              "created_time": "2014-05-08T09:11:20+0000",
              "like_count": 0,
              "user_likes": false
           }
        ],



        "paging": {
           "cursors": {
              "after": "MQ==",
              "before": "Mw=="
           }
        },
        "summary": {
           "order": "ranked",
           "total_count": 3
        }
     }
  }
  ]
}

我正在使用JSON.NET将此json解析为如下所示的类型化对象列表:

foreach (JToken facebookItem in data["data"])
{
    JToken messageCheck = facebookItem.SelectToken("message", false); //Irrelevante post als er geen inhoud in zit (false = geen error melding indien null)
    if (messageCheck != null)
    {
        itemsToAdd.Add(facebookItem.ToObject<FacebookItem>());
    }
}

FacebookItem类如下所示:

public class FacebookItem
{
    public string id { get; set; }
    public From from { get; set; }
    public string link { get; set; }
    public string picture { get; set; }
    public string message { get; set; }
    public string created_time { get; set; }
    public Comments comments { get; set; }
    public PostPaging paging { get; set; }

    public class PostCategories
    {
        public string id { get; set; }
        public string name { get; set; }
    }

    public class From
    {
        public string category { get; set; }
        public List<PostCategories> category_list { get; set; }
        public string name { get; set; }
        public string id { get; set; }
    }

    public class CommentCategories
    {
        public string id { get; set; }
        public string name { get; set; }
    }

    //Root of Comments ("data":[ "comments":{ [],{},{} } ])
    public class Comments
    {
        public List<CommentData> data { get; set; } //SHOULD HOLD MORE THAN 1
        public CommentPaging paging { get; set; }
        public Summary summary { get; set; }
    }

    //Data gegevens van comments ("data":[ "comments":{ "data":[],{},{} } ])
    public class CommentData
    {
        public string id { get; set; }
        public CommentFrom from { get; set; }
        public string message { get; set; }
        public bool can_remove { get; set; }
        public string created_time { get; set; }
        public int like_count { get; set; }
        public bool user_likes { get; set; }
    }

    //Data gegevens van ccommenter ("data":[ "comments":{ "data":[ "from":{} ],{},{} } ])
    public class CommentFrom
    {
        public string id { get; set; }
        public string name { get; set; }
        public string category { get; set; }
        public List<CommentCategories> category_list { get; set; }
    }

    //Paging gegevens van comments ("data":[ "comments":{ [],"paging":{},{} } ])
    public class CommentPaging
    {
        public Cursors cursors { get; set; }
    }

    //Summary gegevens van comments ("data":[ "comments":{ [],{},"summary":{} } ])
    public class Summary
    {
        public string order { get; set; }
        public int total_count { get; set; }
    }

    public class Cursors
    {
        public string after { get; set; }
        public string before { get; set; }
    }

    public class PostPaging
    {
        public string previous { get; set; }
        public string next { get; set; }
    }
}

是否有Json.net专家来支持为什么仅解析第一个注释?这是调试器向我显示的内容:

调试器断点

皮皮书呆子

我告诉你我住的地方,请过来杀了我...

我从本地存储调用了该网址。我更改了网址,但未检测到更改,因此不会被覆盖。

那么,为什么只有一个评论?我已将评论的限制设置为1 :(

不像我希望的那样退出。希望所提供的信息将来能对某人有所帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用JSON.NET将Facebook feed从JSON转换为类型化的对象

来自分类Dev

将 JSON 转换为强类型对象

来自分类Dev

WebAPI将JSON转换为强类型的.net对象

来自分类Dev

使用GSon将匿名Java对象类型转换为JSON

来自分类常见问题

使用Json.NET将任何类型的对象转换为JObject

来自分类Dev

将两种类型的json转换为相同的对象

来自分类Dev

将 JSON 转换为 ANY 类型的 TW 对象

来自分类Dev

将序列化表格的数据转换为json对象

来自分类Dev

使用嵌套的 JSON 对象将 SQLDataReader 结果转换为 JSON

来自分类Dev

使用 bash 将 JSON 文件转换为 JSON 对象

来自分类Dev

使用 gson 将 json 转换为 json 对象

来自分类Dev

使用 Javascript 将 JSON 数组转换为 JSON 对象

来自分类Dev

如何使用json.net将复杂的json对象转换为CLR对象?

来自分类Dev

将JSON转换为对象

来自分类Dev

使用类将JSON对象转换为Typescript类型变量的正确方法?

来自分类Dev

使用Json.Net进行C#枚举反序列化:将值转换为类型时出错

来自分类Dev

将多个JSON转换为对象JSON.NET

来自分类Dev

使用新键将 Json 格式化对象转换为简单数组

来自分类Dev

在不知道类型的情况下将Json.NET对象转换为常规.NET对象

来自分类Dev

使用GSON将JSON转换为嵌套对象(通用对象)

来自分类Dev

如何使用JAXB将属性对象转换为JSON对象

来自分类Dev

仅使用Javascript将PHP对象转换为JSON对象

来自分类Dev

使用JSON.NET将C#对象转换为JSON时,多余的'\'是逗号

来自分类Dev

C# 使用 newtonsoft json.net 将 json 数组转换为对象列表

来自分类Dev

将json对象数组转换为json

来自分类Dev

如何使用Json.NET将JSON转换为BSON

来自分类Dev

使用JSON.NET将字典转换为JSON

来自分类Dev

将javascript对象转换为json对象

来自分类Dev

将Json对象转换为文件对象

Related 相关文章

  1. 1

    使用JSON.NET将Facebook feed从JSON转换为类型化的对象

  2. 2

    将 JSON 转换为强类型对象

  3. 3

    WebAPI将JSON转换为强类型的.net对象

  4. 4

    使用GSon将匿名Java对象类型转换为JSON

  5. 5

    使用Json.NET将任何类型的对象转换为JObject

  6. 6

    将两种类型的json转换为相同的对象

  7. 7

    将 JSON 转换为 ANY 类型的 TW 对象

  8. 8

    将序列化表格的数据转换为json对象

  9. 9

    使用嵌套的 JSON 对象将 SQLDataReader 结果转换为 JSON

  10. 10

    使用 bash 将 JSON 文件转换为 JSON 对象

  11. 11

    使用 gson 将 json 转换为 json 对象

  12. 12

    使用 Javascript 将 JSON 数组转换为 JSON 对象

  13. 13

    如何使用json.net将复杂的json对象转换为CLR对象?

  14. 14

    将JSON转换为对象

  15. 15

    使用类将JSON对象转换为Typescript类型变量的正确方法?

  16. 16

    使用Json.Net进行C#枚举反序列化:将值转换为类型时出错

  17. 17

    将多个JSON转换为对象JSON.NET

  18. 18

    使用新键将 Json 格式化对象转换为简单数组

  19. 19

    在不知道类型的情况下将Json.NET对象转换为常规.NET对象

  20. 20

    使用GSON将JSON转换为嵌套对象(通用对象)

  21. 21

    如何使用JAXB将属性对象转换为JSON对象

  22. 22

    仅使用Javascript将PHP对象转换为JSON对象

  23. 23

    使用JSON.NET将C#对象转换为JSON时,多余的'\'是逗号

  24. 24

    C# 使用 newtonsoft json.net 将 json 数组转换为对象列表

  25. 25

    将json对象数组转换为json

  26. 26

    如何使用Json.NET将JSON转换为BSON

  27. 27

    使用JSON.NET将字典转换为JSON

  28. 28

    将javascript对象转换为json对象

  29. 29

    将Json对象转换为文件对象

热门标签

归档