Первый раз работая с JSON и связанной с ними, я пытаюсь получить расстояние/продолжительность всех возможных маршрутов из этого запроса: 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 Направление JSON
я получил следующие классы с помощью «Вставить JSON в классах» и создать один класс для каждого из них следующие:
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; }
}
для запроса упомянутой выше у меня есть 3 разных маршрутов (так называемые «ножки»), и я хочу, чтобы получить расстояние/продолжительность каждого из них.
Я придумал следующее, но это не работает.
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;
}
}
Любая помощь?
PS: Если кто-нибудь может показать мне, как итерации бросать каждую «ногу», это было бы здорово.
EDIT: Забыл упомянуть, что я использую Newtonsoft.
Вы забыли описать * не работает *. Ваш компьютер взорвался? –
Но вы должны попытаться десериализовать результат в Rootobject. Не существует способа автоматического зависания объекта json, вложенного где-то в результат –
@SirRufo, как это сделать? EDIT: Хорошо, я начну с Rootobject, я думал, что смогу сделать это именно так. Итак, нуб. – iamdlm