Première travailler avec JSON et connexes, je suis en train d'obtenir la distance/durée de toutes les voies possibles de cette demande: https://maps.googleapis.com/maps/api/directions/json?origin=41.2091585,-8.5763016&destination=41.258913,-8.636942&mode=driving&alternatives=true&avoid=tolls&language=pt-PT&key=AIzaSyDuhdvLAny3MpraXKX-bahkXZJolm7KLbEDeserialize Google Indications JSON
je suis arrivé les classes suivantes à l'aide « Coller JSON comme classes » et créer une classe pour chacun des suivants:
public class Rootobject
{
public Geocoded_Waypoints[] geocoded_waypoints { get; set; }
public Route[] routes { get; set; }
public string status { get; set; }
}
public class Route
{
public Bounds bounds { get; set; }
public string copyrights { get; set; }
public Leg[] legs { get; set; }
public Overview_Polyline overview_polyline { get; set; }
public string summary { get; set; }
public object[] warnings { get; set; }
public object[] waypoint_order { get; set; }
}
public class Leg
{
public Distance distance { get; set; }
public Duration duration { get; set; }
public string end_address { get; set; }
public End_Location end_location { get; set; }
public string start_address { get; set; }
public Start_Location start_location { get; set; }
public Step[] steps { get; set; }
public object[] traffic_speed_entry { get; set; }
public Via_Waypoint[] via_waypoint { get; set; }
}
public class Distance
{
public string text { get; set; }
public int value { get; set; }
}
public class Duration
{
public string text { get; set; }
public int value { get; set; }
}
pour la requête mentionné ci-dessus, j'ai 3 itinéraires différents (aka « jambes ») et je veux obtenir la distance/durée de chacun.
Je suis venu avec ce qui suit, mais ça ne fonctionne pas.
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(query);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
using (var streamReader = new StreamReader(response.GetResponseStream()))
{
var result = streamReader.ReadToEnd();
if (!string.IsNullOrEmpty(result))
{
Distance t = JsonConvert.DeserializeObject<Distance>(result);
string distance1_Value = t.value;
string distance1_Text = t.text;
Duration d = JsonConvert.DeserializeObject<Duration>(result);
string duration1_Value = d.value;
string duration1_Value = d.text;
}
}
Une aide? PS: Si quelqu'un peut me montrer comment itérer jeter chaque "jambes" qui serait génial.
EDIT: J'ai oublié de mentionner que j'utilise Newtonsoft.
Vous avez oublié de décrire * ne fonctionne pas *. Votre ordinateur a-t-il explosé? –
Mais vous devriez essayer de désérialiser le résultat à Rootobject. Il n'y a aucun moyen d'auto-cherrypick un objet json imbriqué quelque part dans le résultat –
@SirRufo comment? EDIT: Ok, je vais commencer avec Rootobject, je pensais que je pouvais le faire de cette façon. Alors noob. – iamdlm