Как получить строку JSON из URL? - PullRequest
134 голосов
/ 06 апреля 2011

Я переключаю свою кодовую форму XML на JSON.

Но я не могу найти, как получить строку JSON из данного URL.

URL выглядит примерно так: "https://api.facebook.com/method/fql.query?query=.....&format=json"

Я раньше использовал XDocuments, там я мог бы использовать метод загрузки:

XDocument doc = XDocument.load("URL");

Что эквивалентноэтот метод для JSON? Я использую JSON.NET.

Ответы [ 3 ]

250 голосов
/ 06 апреля 2011

Используйте класс WebClient в System.Net:

var json = new WebClient().DownloadString("url");

Имейте в виду, что WebClient - это IDisposable, так что вы, вероятно, добавите к нему оператор using в производственном коде,Это будет выглядеть так:

using (WebClient wc = new WebClient())
{
   var json = wc.DownloadString("url");
}
100 голосов
/ 06 апреля 2011

AFAIK JSON.Net не предоставляет функции для чтения с URL.Так что вам нужно сделать это в два этапа:

using (var webClient = new System.Net.WebClient()) {
    var json = webClient.DownloadString(URL);
    // Now parse with JSON.Net
}
43 голосов
/ 17 сентября 2014

Если вы используете .NET 4.5 и хотите использовать асинхронный режим, вы можете использовать HttpClient в System.Net.Http:

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

    // Now parse with JSON.Net
}
...