我得到的 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);
错误是:
The best overloaded method match for 'Newtonsoft.Json.JsonConvert.DeserializeObject(string)' has some invalid arguments.
无法更正此问题。谁能纠正这个问题?
非常非常感谢!
最佳答案
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; }
}
关于c# - 反序列化 JSON 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20773297/