iphone со структурой sbjson не может разобрать массив json - PullRequest
0 голосов
/ 25 ноября 2011

Я столкнулся с некоторой проблемой с json и целью c.Я использую фреймворк sbJson (я могу изменить фреймворк, если кто-нибудь скажет мне сделать это!), И я не могу разобрать массив json.

это json, который я хочу проанализировать,

{"JsonEventosResult":
    [
        {"nombre":"Venta de Reposición N°13","id":34,"fecha":"16/09/2011"},
        {"nombre":"evento rose","id":37,"fecha":"04/10/2011"},
        {"nombre":"Prueba PhoneGap","id":40,"fecha":"23/11/2011"}
    ]
}

это мой код на iphone:

- (void)connectionDidFinishLoading:(NSURLConnection *)connection {      
[connection release];

NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
[responseData release];

NSError *error;
SBJSON *json = [[SBJSON new] autorelease];
NSArray *luckyNumbers = [json objectWithString:responseString error:&error];
[responseString release];   

if (luckyNumbers == nil)
    label.text = [NSString stringWithFormat:@"JSON parsing failed: %@", [error localizedDescription]];
else {      
    NSMutableString *text = [NSMutableString stringWithString:@"Lucky numbers:\n"];

    for (int i = 0; i < [luckyNumbers count]; i++) 
        [text appendFormat:@"%@\n", [luckyNumbers objectAtIndex:i]];

    label.text =  text;
}
}

ошибка, которую я получаю, состоит в том, что luckyNumbers - это массив с объектом 0.

образец, который я получил, если из http://mobileorchard.com/tutorial-json-over-http-on-the-iphone/.

так в чем же проблема?JSON я получаю форму службы или рамки?

THX

1 Ответ

4 голосов
/ 25 ноября 2011

Вы справляетесь с этим неправильно.Это не массив, это словарь, значение для ключа @ "JsonEventosResult" - это массив.Итак, в строке JSON objectwithstring сделайте это обязательным, а затем укажите на этот ключ

ИЛИ удалите {"JsonEventosResult": и final}, чтобы он уже представлял собой массив

Oh, иЯ думаю, что вам придется Unicode избежать ваших акцентированных символов и символов степени (проверьте ваш JSON на jsonlint.org, чтобы убедиться, что он действителен)

...