C# 如何从URL获取JSON字符串?
我正在将代码从XML转换为JSON 但是我找不到如何从给定的URL获取JSON字符串 URL如下所示:https://api.facebook.com/method/fql.query?query=.....&format=json" 我以前使用过XDocuments,在那里我可以使用load方法:C# 如何从URL获取JSON字符串?,c#,json,facebook,linq-to-xml,webclient,C#,Json,Facebook,Linq To Xml,Webclient,我正在将代码从XML转换为JSON 但是我找不到如何从给定的URL获取JSON字符串 URL如下所示:https://api.facebook.com/method/fql.query?query=.....&format=json" 我以前使用过XDocuments,在那里我可以使用load方法: XDocument doc = XDocument.load("URL"); 对于JSON,这种方法的等效性是什么?我使用的是JSON.NET。使用System.NET中的We
XDocument doc = XDocument.load("URL");
对于JSON,这种方法的等效性是什么?我使用的是JSON.NET。使用
System.NET
中的WebClient
类:
var json = new WebClient().DownloadString("url");
请记住,WebClient
是IDisposable
,因此您可能会在生产代码中使用语句向其添加。这看起来像:
using (WebClient wc = new WebClient())
{
var json = wc.DownloadString("url");
}
AFAIK JSON.Net不提供从URL读取的功能。因此,您需要分两步完成此操作:
using (var webClient = new System.Net.WebClient()) {
var json = webClient.DownloadString(URL);
// Now parse with JSON.Net
}
如果您使用的是.NET 4.5,并且希望使用异步,那么您可以在System.NET.Http
中使用HttpClient
:
using (var httpClient = new HttpClient())
{
var json = await httpClient.GetStringAsync("url");
// Now parse with JSON.Net
}
@史密斯:这不是一个建议。。。这篇文章提到:)谢谢你帮我,奇怪的是我没有在谷歌上找到这个,这真的是一个基本问题,不是吗?我现在遇到一个错误,比如:无法将JSON对象反序列化为“System.String”类型。我知道类中的某个属性没有正确声明,但我就是找不到其中一个。但我还在努力!:)为什么要跳过Jon在回答中使用的using语句?直到我将var json=wc.DownloadString(“url”)代码>在中尝试捕获块!我发现错误“HttpRequestException:无法分配请求的地址”。。这是URL:,但它与URL一起工作:您必须在任务中使用它,而异步