首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Json.net DeserializeObject问题

Json.net DeserializeObject问题
EN

Stack Overflow用户
提问于 2015-09-13 02:50:44
回答 3查看 491关注 0票数 1

我正在使用JSON.Net尝试反序列化来自facebook的一些响应。下面是我正在阅读的数据的快照:

代码语言:javascript
运行
复制
 {
      "data": [
        {
          "id": "123"
        },
        {
          "id": "234"
        }
      ],
      "paging": {
        "cursors": {
          "before": "xxx",
          "after": "xxx"
        },
        "next": "xxx"
      }
 }

课程:

代码语言:javascript
运行
复制
class jsonDeserialize
{
    public List<ListDetail> ListDetail { get; set; }
}

public class DataList
{
    public string id { get; set; }
}

public class Paging
{
    public List<string> cursors { get; set; }
    public string next { get; set; }
}
public class Cursors
{
    public string before { get; set; }
    public string after { get; set; }
}

public class ListDetail
{
    public List<Cursors> Cursors { get; set; }
    public List<Paging> Articles { get; set; }
    public List<DataList> DataList { get; set; }
}

我使用这段代码来使用JSON.NET反序列化函数:由于某种原因,结果返回null,请帮助我:(

代码语言:javascript
运行
复制
var result = JsonConvert.DeserializeObject<jsonDeserialize>(jsonString);
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-09-13 04:17:54

修正你的课程防御:

代码语言:javascript
运行
复制
    class jsonDeserialize
    {
        public List<DataList> data { get; set; }
        public Paging paging { get; set; }
    }

    public class DataList
    {
        public string id { get; set; }
    }

    public class Paging
    {
        public Cursors cursors { get; set; }
        public string next { get; set; }
    }
    public class Cursors
    {
        public string before { get; set; }
        public string after { get; set; }
    }

jsonDeserialize包含DataList列表,ListDetail可以删除,cursors不是数组,它是一个对象。

票数 1
EN

Stack Overflow用户

发布于 2015-09-13 04:33:13

天哪,我错过了来自facebook的JSON,“解决”了相反的问题。不过,我会把它留在这里,以防万一

首先,作为快速说明,这里的反序列化代码必须类似于var result = JsonConvert.DeserializeObject<jsonDeserialize>(jsonString);

您的JSON与代码不对应。如果您想反序列化为jsonDeserialize类,您的json必须是这样的(请密切关注[]{})

代码语言:javascript
运行
复制
{
  "ListDetail" : 
  [
   {
     "Cursors":
     [
       {
         "before" : "value",
         "after" : "value"
       }

      ],
      "Articles":
      [
        {
          "Cursors":
          [

            "cursor1",
            "cursor2"

          ],
          "next" : "somenext"
        }
      ],
      "DataList":
      [
        {
          "id" : "someid"
        },
        {
          "id" : "someid2"
        }
      ]
   }
  ]
}
票数 0
EN

Stack Overflow用户

发布于 2015-09-13 05:28:45

代码语言:javascript
运行
复制
 class jsonDeserialize
    {

        public List<DataList> data { get; set; }
        public Paging paging { get; set; }

    }

    public class DataList
    {
        public string id { get; set; }
    }

    public class Paging
    {
        public Cursors cursors { get; set; }
        public string next { get; set; }
    }
    public class Cursors
    {
        public string before { get; set; }
        public string after { get; set; }
    }

var result=JsonConvert.DeserializeObject<jsonDeserialize>(jsonformat.Substring(0,jsonformat.Length));

使用它,它会给你写结果。由于数据和分页被视为属性,因此需要在类json荒漠化中将这些属性初始化,并使用游标代替列表,因为您将游标数据存储在分页类.Thanks中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32545833

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档