Извлечение определенной части JSON Respose на iPhone - PullRequest
0 голосов
/ 02 мая 2011

Я смотрю, как добавить в приложение калькулятор расстоянийЯ смотрел на API Google, я не могу расшифровать 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"];'

}

Куда бы я пошел отсюда?

Любая помощь будет отличным приветствием

Ответы [ 2 ]

0 голосов
/ 02 мая 2011
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 голосов
/ 02 мая 2011

Самое простое, что можно сделать, это создать итератор словаря и циклически определить, какие дочерние элементы есть в словаре luckynumbers, вы можете распечатать или отладить, чтобы увидеть, что представляют собой ключи для этих дочерних элементов, и какие они являются объектными типами..

Я использовал эту технику несколько раз, чтобы выяснить, на что была похожа структура документа XML, который мне возвращали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...