0

我正在开发 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 数据,然后在视图中显示?

请帮忙

4

1 回答 1

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());
于 2012-07-06T14:50:05.037 回答