在iPhone上提取JSON响应的特定部分

问题描述 投票:0回答:2

我正在考虑在我的应用程序中添加距离计算器。我一直在查看 Google 的 API,我似乎无法解码 JSON。我已经用 PHP 成功做到了这一点。代码是:

substr($convertedtoarray['routes']['0']['legs']['0']['distance']['text'], 0, -3);

在 iPhone 上,我设法获取 JSON 响应,但无法获取我想要的特定部分。

Json地址:

http://maps.googleapis.com/maps/api/directions/json?origin=plymouth&destination=pl210bp&sensor=false

NSMutableDictionary *luckyNumbers = [responseString JSONValue];

[responseString release];
if (luckyNumbers != nil) {
    
    NSString *responseStatus = [luckyNumbers objectForKey:@"routes"];'

}

我该去哪里?

任何帮助都会很棒。

ios json google-maps
2个回答
0
投票
NSString *responseStatus = [[[[[[luckyNumbers objectForKey:@"routes"]objectAtIndex:0] objectForKey:@"legs"]objectAtIndex:0] objectForKey:@"distance"] objectForKey:@"text"];

非常难看,你可以像这样提取单独的对象:

    NSArray *routesArray = [luckyNumbers objectForKey:@"routes"];
    NSDictionary *firstRoute = [routesArray objectAtIndex:0];
    NSArray *legsArray = [firstRoute objectForKey:@"legs"];
    NSDictionary *firstLeg = [legsArray objectAtIndex:0];
    NSDictionary *distanceDict = [firstLeg objectForKey:@"distance"];
    NSString *distanceText = [distanceDict objectForKey:@"text"];

祝你好运。


0
投票

最简单的方法是创建一个字典迭代器,并循环遍历 luckynumbers 字典有哪些子元素,您可以打印出来或调试,以查看这些子元素的键是什么,以及它们是什么类型。

我使用这种技术几次来弄清楚我返回的 XML 文档的结构是什么样的。

© www.soinside.com 2019 - 2024. All rights reserved.