我正在尝试创建一个简单的应用程序,该应用程序从Google Maps API获取JSON文档并迭代它,显示路线,持续时间和距离的每一条腿。
我已经让它显示了第一条腿,但我不知道如何让盒子重复。也许是一个foreach循环?我是新人,我真的不确定。
var from = origin.Text;
var to = destination.Text;
var requesturl = @"http://maps.googleapis.com/maps/api/directions/json?origin="
+ from + "&alternatives=false&units=imperial&destination="
+ to + "&sensor=false";
string content = file_get_contents(requesturl);
JObject o = JObject.Parse(content);
string distance = (string)o.SelectToken("routes[0].legs[0].distance.text");
string instructions =
(string) o.SelectToken("routes[0].legs[0].steps[0].html_instructions");
txtDistance.Text = distance;
TextBox1.Text = instructions;
答案 0 :(得分:0)
您可以反序列化整个JSON响应并使用对象迭代结果。这比硬编码或计算字符串路径更易于维护。
您可以查看Google Directions C# wrapper了解详情
答案 1 :(得分:0)
这个答案:Deserialize JSON into C# dynamic object?包含一些类的代码,可以将JSON反序列化为动态C#对象。听起来它非常适合您的需求。
答案 2 :(得分:0)
由于您有一个示例json文档,您可以使用http://json2csharp.com/创建相关合同。您可以在以后使用带有类型属性的对象,并轻松遍历相关字段。