Синтаксический анализ значения JSON в цели c ошибка? - PullRequest
2 голосов
/ 06 июля 2011

Я использую ASIHTTPRequest для получения токена и получаю следующую строку:

{Token:[{"new":"jkajshdkjashdjhasjkdhjkhd+sd==sfbjhdskfbks+sdjfbs=="}]}

Я использовал отсюда JSON Framework: http://stig.github.com/json-framework.

Это код после того, как я получаюстрока:

- (void)requestFinished:(ASIHTTPRequest *)req
{
    NSString *responseString = [req responseString];
    NSLog(@"Response: %@", [req responseString]);

    // Parse the response
    SBJsonParser *jsParser = [SBJsonParser new];
    id content = [responseString JSONValue];
    if(!content){
        // Parsing error
        NSLog(@"%@", jsParser.errorTrace);
    }
}
NSLog(@"ID: %@", content);

Я получаю эту ошибку:

 -JSONValue failed. Error trace is: (
"Error Domain=org.brautaset.JSON.ErrorDomain Code=3 \"Object key string expected\" UserInfo=0x5a418a0 {NSLocalizedDescription=Object key string expected}"

)

Я предполагаю, что используемая мной среда JSON не может понять формат строки ответа:

{Token:[{"new":"jkajshdkjashdjhasjkdhjkhd+sd==sfbjhdskfbks+sdjfbs=="}]}

Есть ли другой способ анализа значения?

Счастливого программирования, Джони

Ответы [ 2 ]

4 голосов
/ 06 июля 2011

Он искал начало и конец "вокруг токена.

{"Token":[{"new":"jkajshdkjashdjhasjkdhjkhd+sd==sfbjhdskfbks+sdjfbs=="}]}
0 голосов
/ 11 июля 2011

В этом коде есть ошибка:

SBJsonParser *jsParser = [SBJsonParser new];
id content = [responseString JSONValue];
if(!content){
    // Parsing error
    NSLog(@"%@", jsParser.errorTrace);
}

Вы создаете экземпляр синтаксического анализатора, jsParser, но не используете его для анализа строки. (Метод JSONValue создает новый синтаксический анализатор внутри.) Затем вы читаете ошибку из синтаксического анализатора , который не использовался для анализа строки .

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