如何从url获取json字符串?

Thd*_*hdK 137 c# json facebook webclient linq-to-xml

我正在将我的代码格式XML切换为JSON.

但我找不到如何从给定的URL获取JSON字符串.

URL是这样的:" https://api.facebook.com/method/fql.query?query=.....&format=json "

之前我使用过XDocuments,我可以使用load方法:

XDocument doc = XDocument.load("URL");
Run Code Online (Sandbox Code Playgroud)

这个JSON方法的等价物是什么?我正在使用JSON.NET.

Zeb*_*ebi 257

使用以下WebClient课程System.Net:

var json = new WebClient().DownloadString("url");
Run Code Online (Sandbox Code Playgroud)

请记住,WebClientIDisposable,那么你可能会添加一个using产品代码中声明了这一点.这看起来像:

using (WebClient wc = new WebClient())
{
   var json = wc.DownloadString("url");
}
Run Code Online (Sandbox Code Playgroud)

  • 为什么要跳过Jon的答案中使用的using语句? (8认同)
  • WebClient 现已过时,您应该使用 httpClient.GetStringAsync,如 Richard Garside 所示。 (3认同)

Jon*_*Jon 100

AFAIK JSON.Net不提供从URL读取的功能.所以你需要分两步完成:

using (var webClient = new System.Net.WebClient()) {
    var json = webClient.DownloadString(URL);
    // Now parse with JSON.Net
}
Run Code Online (Sandbox Code Playgroud)


Ric*_*ide 44

如果您使用.NET 4.5,并希望异步使用,那么你可以使用HttpClientSystem.Net.Http:

using (var httpClient = new HttpClient())
{
    var json = await httpClient.GetStringAsync("url");

    // Now parse with JSON.Net
}
Run Code Online (Sandbox Code Playgroud)

  • 这个适用于通用Windows应用程序 (4认同)
  • 你必须在带有 `async` 的 `Task` 中使用它 (2认同)