Проблема получения содержимого JSON с помощью JSONValue - PullRequest
1 голос
/ 19 декабря 2010

Я использую каркас json для объективного анализа для анализа некоторых json из API маяка - http://stig.github.com/json-framework/

Я уже использовал эту среду с другими API-интерфейсами без проблем, хотя, похоже, зашел в тупик при попытке получить результаты от API-интерфейса маяка с помощью JSONValue.

Похоже, значение возвращается неправильно:

NSArray *results = [json_string JSONValue];

for (NSDictionary *project in results){
    NSLog(@"project found");
}

Этот цикл запускается только один раз, хотя я знаю, что существует не менее 7 объектов для его прохождения через строку JSON. Проект также устанавливается в виде строки, а не NSDictionary, я знаю это, так как вызов objectForKey для проекта вызывает ошибку.

[NSCFString objectForKey:]: unrecognized selector sent to instance 

Я довольно озадачен здесь и надеюсь, что это не проблема с возвращаемой строкой из API Lighthouse, и я просто пытаюсь получить содержимое неправильно, моя строка json здесь: http://pastie.org/1390233

1 Ответ

5 голосов
/ 20 декабря 2010

Поведение парсера корректно. Словарь results содержит только 1 ключ с именем projects, который является массивом. Чтобы просмотреть каждый отдельный проект, вам нужно перечислить это свойство projects.

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

for(NSDictionary *item in projects) {
    NSDictionary *project = [item objectForKey:@"project"];
    // now project should have the desired keys
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...