繁体   English   中英

在ASP.NET MVC3中的视图中显示json数据?

[英]Show json data in view in ASP.NET MVC3?

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

请帮忙

您试图将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());

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM