Ошибка при использовании Brautaset Json framework в iphone - PullRequest
5 голосов
/ 30 мая 2009

Я пытаюсь сделать http-запрос. Код выглядит так:

NSString *urlString = [NSString stringWithString:@"http://www.foo.se/bartojson.php?venue=47497"]; 


NSLog(@"retain %d urlString %@", [urlString retainCount], urlString );
    NSURL *url = [NSURL URLWithString:urlString];
    [urlString release];

    NSString *jsonString = [NSString stringWithContentsOfURL:url];
    NSDictionary *httpResult = [jsonString JSONValue];

При вызове страницы в браузере результат выглядит так:

{"name": "test", "description": "Это тест". , "reviews": [{"grade": "5", "description": "Nice"}, {"grade": "3", "description": "Very nice!"}]}

Но при вызове из кода я получаю это:

Ошибка Domain = org.brautaset.JSON.ErrorDomain Code = 3 UserInfo = 0x582640 «Ожидается значение объекта для ключа: отзывы»

Кажется, есть некоторая проблема с отзывами, указывающими на новый словарь. Не могли бы вы помочь мне понять это сообщение об ошибке.

Ответы [ 2 ]

6 голосов
/ 04 июня 2009

Ну, я нашел причину моей ошибки. Глупые разрывы строк в Windows приводили к сбою вызова JSONValue. Удалил все и альт все работает как шарм!

2 голосов
/ 19 августа 2009

Не знаю, если это была опечатка, но ваш пример не является допустимым JSON из-за запятой, следующей за "Nice". JSON не позволяет использовать запятые в массивах или словарях («Объекты»). JSON.framework наверняка пойдет на поводу этого.

Кстати, если вы используете текущую стабильную версию фреймворка, он всегда будет печатать полный стек ошибки в журнале консоли, если вы используете удобные методы. В противном случае вы можете запросить у объекта синтаксического анализа полную трассировку стека и распечатать его самостоятельно.

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