2011-04-06 25 views

Respuesta

204

utilizar la clase WebClient en System.Net:

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

Tenga en cuenta que es WebClientIDisposable, por lo que es probable que añadir una declaración using a esto en el código de producción. Esto se vería así:

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

¿Por qué se salta el uso de declaración que se utiliza en la respuesta de Jon? – Skuli

+0

** editado para reflejar su comentario. @Skuli –

84

AFAIK JSON.Net no proporciona la funcionalidad para leer desde una URL. Así que hay que hacerlo en dos pasos:

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

+1 Buena llamada sugiriendo JSON.Net. Muy buena biblioteca para mirar. – jsmith

+1

@jsmith: No fue una sugerencia ... el OP lo mencionó :) – Jon

+0

Thx por ayudarme, es extraño que no haya encontrado esto en google, esta realmente era una pregunta básica ¿no? Ahora estoy teniendo un error como: No se puede deserializar el objeto JSON en el tipo 'System.String'. Sé que es un atributo de mi clase que no está bien declarado, pero no puedo encontrarlo. ¡Pero todavía estoy intentando! :) – ThdK

33

Si está utilizando .NET 4.5 y desea utilizar asíncrono, puede utilizar HttpClient en System.Net.Http:

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

    // Now parse with JSON.Net 
} 
+4

este funciona con aplicaciones de Universal de Windows – garenyondem

Cuestiones relacionadas