0

我正在尝试创建一个简单的应用程序,该应用程序从 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;
4

3 回答 3

0

由于您有一个示例 json 文档,您可以使用http://json2csharp.com/创建相关合同。之后您可以使用带有类型属性的对象,并轻松地遍历相关字段。

于 2013-01-11T18:43:00.943 回答
0

这个答案:将 JSON 反序列化为 C# 动态对象?有一些类的代码,可让您将 JSON 反序列化为动态 C# 对象。听起来它非常适合您的需求。

于 2013-01-11T18:13:40.340 回答
0

您可以反序列化整个 JSON 响应并使用对象来迭代结果。这将比硬编码或计算字符串路径更易于维护。

您可以查看Google Directions C# 包装器了解详细信息

于 2013-01-11T17:13:57.117 回答