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

Unable to retrieve Json data from remote server binding to object in asp.net mvc

我正在开发 Asp.Net mvc 应用程序。在我的应用程序中,我需要从远程服务器检索 json 对象。我正在为此使用网络客户端。但它给我错误。我的场景如下。

我有这个url

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

当我从浏览器访问时,它return像这样

所以我试图以 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 获取,然后将 return 作为操作结果。但是当我请求该操作方法传递正确的 url 作为参数时,它给了我这个错误。

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

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

JsonConvert.DeserializeObject 取 JSON 值。

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

Json(JsonConvert.DeserializeObject<FacebookAvatarResponse>(data),
     JsonRequestBehavior.AllowGet);