2013-01-11 51 views
0

我试图创建一个简单的应用程序,它从Google Maps API获取JSON文档并遍历它,显示路线,持续时间和距离的每条路线。通过JSON文档C迭代#

我已经得到它来显示腿的第一个,但我不知道如何使框重复。也许是一个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

您可以(也可能应该)创建一个匹配JSON结构的对象,并将结果反序列化为它。那么它将清楚如何迭代它。你可以发布你回来的json吗? –

+0

可能的重复[如何通过JObject枚举?](http://stackoverflow.com/questions/10543512/how-do-i-enumerate-through-a-jobject) – James

回答

0

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

您可以在Google Directions C# wrapper看看详细内容

0

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