通过JSON doc C#迭代

时间:2013-01-11 17:07:48

标签: c# json json.net

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

3 个答案:

答案 0 :(得分:0)

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

您可以查看Google Directions C# wrapper了解详情

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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