web-dev-qa-db-fra.com

Comment obtenir une chaîne JSON à partir de l'URL?

Je bascule mon code XML en JSON.

Mais je ne trouve pas comment obtenir une chaîne JSON à partir d'une URL donnée.

L'URL ressemble à ceci: " https://api.facebook.com/method/fql.query?query=.....&format=json "

J'avais utilisé XDocuments auparavant, là je pourrais utiliser la méthode de chargement:

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

Quel est l'équivalent de cette méthode pour JSON? J'utilise JSON.NET.

134
ThdK

Utilisez la classe WebClient dans System.Net:

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

N'oubliez pas que WebClient est IDisposable, vous ajouterez donc probablement une instruction using dans le code de production. Cela ressemblerait à:

using (WebClient wc = new WebClient())
{
   var json = wc.DownloadString("url");
}
252
Zebi

AFAIK JSON.Net ne fournit pas de fonctionnalité pour lire à partir d'une URL. Donc, vous devez le faire en deux étapes:

using (var webClient = new System.Net.WebClient()) {
    var json = webClient.DownloadString(URL);
    // Now parse with JSON.Net
}
100
Jon

Si vous utilisez .NET 4.5 et souhaitez utiliser async, vous pouvez utiliser HttpClient dans System.Net.Http:

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

    // Now parse with JSON.Net
}
43
Richard Garside