我得到的JSON输出如下:
{"data":
[
{
"name":"followersQuery",
"fql_result_set":[{"subscriber_count":300}]
},
{
"name":"likesQuery",
"fql_result_set":[{"like_count":0}]
}
]
}
这是多个fql
查询的输出。
我创建了以下类来反序列化输出:
public class ResultCount
{
[JsonProperty("subscriber_count")]
public int Followers { get; set; }
[JsonProperty("like_count")]
public int Likes { get; set; }
}
public class ResultItem
{
[JsonProperty("name")]
public string Name { get; set; }
[JsonProperty("fql_result_set")]
public ResultCount ResultCounts { get; set; }
}
public class FacebookData
{
public List<ResultItem> Items { get; set; }
}
我在下列行中反序列化输出时遇到错误:
JsonConvert.DeserializeObject<FacebookData>(myOutput);
错误是:
最佳重载方法匹配 'Newtonsoft.Json.JsonConvert.DeserializeObject(字符串)' 有一些无效的论点。
无法纠正此问题。任何人都可以纠正这个吗?
许多人提前感谢!
答案 0 :(得分:2)
ResultCounts
返回类型应为List<Resultcount>
。
更改
public ResultCount ResultCounts { get; set; }
到
public List<ResultCount> ResultCounts { get; set; }
在旁注中,您可以通过简单地粘贴json来获得类结构 - Json2csharp。它会自动为您生成类结构。它可用于验证您的结构。生成的结构是这样的:
public class FqlResultSet
{
public int subscriber_count { get; set; }
public int? like_count { get; set; }
}
public class Datum
{
public string name { get; set; }
public List<FqlResultSet> fql_result_set { get; set; }
}
public class RootObject
{
public List<Datum> data { get; set; }
}