Проблема разбора JSON - PullRequest
       3

Проблема разбора JSON

2 голосов
/ 06 февраля 2012

Мой код:

NSString *jsonString;   

jsonString = [[NSMutableString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];

// Create a dictionary from the JSON string
NSDictionary *results = [jsonString JSONValue];

NSLog(@"%@",jsonString);
// Build an array from the dictionary for easy access to each entry
NSArray *places = [results objectForKey:@"description"];

Я не получаю желаемый результат.Когда я отлаживаю код, я получаю 2 пары ключ / значение и объект 0 для мест NSArray.

Ответы [ 3 ]

1 голос
/ 06 февраля 2012

Это правильно, что у вас есть 2 пары ключ / значение.Два верхних целых ключа - это «предсказания» и «статус».Поэтому вы должны сначала извлечь прогнозы (это массив):


NSArray *predictions = [results objectForKey:@"predictions"];

, а затем выполнить итерацию;также обратите внимание, что «description» - это строка, и чтобы получить места, вы должны разделить ее, используя разделитель «,»:


for(NSDictionary *aPrediction in predictions) {
  NSString *description = [aPrediction objectForKey:@"description"];
  NSArray *placesInDescription = [description componentsSeparatedByString:@","];
}
0 голосов
/ 06 февраля 2012

Работает у меня без проблем с JSON Kit!

NSString *jsonString;   

      NSData *responseData = [NSData dataWithContentsOfURL: [NSURL URLWithString:@"https://maps.googleapis.com/maps/api/place/autocomplete/json?input=solapur&sensor=true&key=AIzaSyC0K5UhV_BWmXhncIZEnbh-WG2RVQVgfdY"]];

      jsonString = [[NSMutableString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];

      // Create a dictionary from the JSON string
      NSDictionary *results = [jsonString objectFromJSONString];

      // Build an array from the dictionary for easy access to each entry
      NSArray *places = [results valueForKey:@"predictions"];

      NSLog(@"places %@", places);
0 голосов
/ 06 февраля 2012

может быть, вы должны использовать:

NSArray *places = [results valueForKey:@"predictions"];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...