无法从远程服务器绑定到asp.net mvc中的对象检索Json数据

问题描述 投票:0回答:1

我正在开发一个Asp.Net mvc应用程序。在我的应用程序中,我需要从远程服务器检索json对象。我正在使用Web客户端。但它给了我错误。我的情况如下。

我有这个网址

http://graph.facebook.com/{fb_id}/picture?width=200&height=200&redirect=false

当我从浏览器访问时,它会返回这样的内容

enter image description here

所以我试图将这些数据作为json检索,然后将它们序列化。所以我构建了两个类,如下所示绑定数据。

public class FacebookAvatarResponse
    {
        [JsonProperty("data")]
        public FacebookAvatarData Data { get; set; }
    }

    public class FacebookAvatarData
    {
        [JsonProperty("height")]
        public int Height { get; set; }
        [JsonProperty("width")]
        public int Width { get; set; }
        [JsonProperty("is_silhouette")]
        public bool IsSilhouette { get; set; }
        [JsonProperty("url")]
        public string Url { get; set; }
    }

在控制中,我构建了一个动作方法

 [AllowAnonymous]
        public JsonResult Test(string avatarDataUrl)
        {
            using (WebClient webClient = new WebClient())
            {
                string data = webClient.DownloadString(avatarDataUrl);
                return Json(JsonConvert.DeserializeObject<FacebookAvatarResponse>(data),JsonRequestBehavior.AllowGet);
            }
        }

如您所见,我将该数据作为json获取,然后作为操作结果返回。但是当我请求操作方法传递正确的url作为参数时,它给了我这个错误。

enter image description here

如何从远程服务器绑定到特定类检索JSON数据?

json asp.net-mvc httprequest webclient
1个回答
0
投票

可能你没有将JSON传递给DeserializeObject。

JsonConvert.DeserializeObject取JSON值。

检查您的数据应采用json格式进行反序列化。

Json(JsonConvert.DeserializeObject<FacebookAvatarResponse>(data),
     JsonRequestBehavior.AllowGet);
© www.soinside.com 2019 - 2024. All rights reserved.