2010-10-19 4 views
0

Hé les gars, le code suivant fonctionne, il envoie une requête GET et reçoit une réponse JSON.Analyser une chaîne de réponse à une requête JSON dans ASP.NET

Maintenant, je peux aller au fond

GetWeatherByLocation (53,3, -6,28);

et la méthode renvoie

{ "status": "OK", "url": "http://www.link.com/areas/rathfarnham-11", "name": "Rathfarnham" }

je demande maintenant comment puis-je récupérer les valeurs pour

  • URL
  • Nom

de la chaîne r eturned

thanks a lot

Im en utilisant ASP.NET 2 ceci est mon code d'appel

public static string GetWeatherByLocation(double lat, double lng) 
{ 

    string formattedUri = String.Format(CultureInfo.InvariantCulture, 

          FindNearbyWeatherUrl, lat, lng); 



    HttpWebRequest webRequest = GetWebRequest(formattedUri); 

    HttpWebResponse response = (HttpWebResponse)webRequest.GetResponse(); 

    string jsonResponse = string.Empty; 

    using (StreamReader sr = new StreamReader(response.GetResponseStream())) 
    { 

     jsonResponse = sr.ReadToEnd(); 

    } 

    return jsonResponse; 

} 
+0

La réponse a été modifiée pour prendre en compte les nouvelles informations – samy

Répondre

0

Votre code d'appel est en javascript, je suppose. Utilisez simplement la réponse en tant qu'objet javascript, car le format json est une notation pour un objet javascript. Vous pouvez accéder à ses propriétés directement:

var returningValue = {"status":"OK","url":"http://www.link.com/areas/rathfarnham-11","name":"Rathfarnham"} ; 
alert(returningValue.status); 
alert(returningValue.url); 
alert(returningValue.name); 

edit: si vous voulez analyser JSON dans .NET, vous pouvez voir this question où quelqu'un explique comment analyser l'objet en utilisant JavaScriptSerializer de System.Web.Extensions.dll


éditer 2: si votre version de .net ne vous laisse pas jouer avec ce fichier .dll je vous recommande de regarder dans les versions précédentes json.net, notamment the last 2.0 release. Mais vous devriez avoir accès à la DLL car elle est apparue dans .net 2.0, mais dans le framework AJAX si ma mémoire est bonne ...

Il est possible d'analyser votre objet à la main, mais je vous recommande vraiment d'utiliser un bibliothèque à la place. Si vous voulez le faire à la main, vous êtes dans un monde complexe ...

+0

C'est effectivement dans .NET mon indicatif. dans ASP.NET 2 – StevieB

+0

[code] chaîne statique publique GetWeatherByLocation (double-lat, double lng) { chaîne formattedUri = String.Format (CultureInfo.InvariantCulture, FindNearbyWeatherUrl, lat, lng); HttpWebRequest webRequest = GetWebRequest (formatéUri); HttpWebResponse response = (HttpWebResponse) webRequest.GetResponse(); chaîne jsonResponse = chaîne.Empty; en utilisant (StreamReader sr = new StreamReader (response.GetResponseStream())) { jsonResponse = sr.ReadToEnd(); } return jsonResponse; } [/ code] – StevieB

+0

On dirait que DLL est pour ASP.NET 3.5, est-ce que je peux y parvenir dans ASP.NET? C'est seulement une simple chaîne im essayant d'analyser réellement ie {"status": "OK", "url": "http://www.link.com/areas/rathfarnham-11", "name": "Rathfarnham"} – StevieB

Questions connexes