无法从绑定到 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);
我正在开发 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);