我正在开发Facebook应用程序,其中我正在以
获取用户的朋友详细信息dynamic result = client.Get("me/friends"); //it gives friend's data for id, name
它在
中提供数据{
"data": [
{
"name": "Steven",
"id": "57564897"
},
{
"name": "Andy",
"id": "8487581"
}
}
现在我想解析这些数据并存储它。所以我可以按照我的方式使用它。
我试图使用 JSON.NET 解析它并在视图中显示数据
var model = JsonConvert.DeserializeObject<FriendDetail>(result.data);
在课堂上:
public class FriendDetail
{
public string id { get; set; }
public string name { get; set; }
public FriendDetail(string i, string n)
{
id = i;
name = n;
}
}
现在我可以将视图传递为“return View(model)
”
但它给了我错误:The best overloaded method match for 'Newtonsoft.Json.JsonConvert.DeserializeObject<FBApp.Models.FBFriendDetail>(string)' has some invalid arguments
为什么会出现此错误?
请帮我解析这个json数据。
还有更好的方法来解析和存储 json数据,然后在视图中显示吗?
请帮忙
答案 0 :(得分:4)
您正尝试将FriendDetail
个对象的列表反序列化为单个FriendDetail
对象。请尝试以下方法:
var jObject = JObject.Parse(result.ToString());
var model = JsonConvert.DeserializeObject<List<FriendDetail>>(jObject["data"].ToString());
修改强>
这是我测试它的方式:
var result =
@"{
""data"": [
{
""name"": ""Steven"",
""id"": ""57564897""
},
{
""name"": ""Andy"",
""id"": ""8487581""
}]
}";
var jObject = JObject.Parse(result.ToString());
var model = JsonConvert.DeserializeObject<List<FriendDetail>>(jObject["data"].ToString());