Вопросы десериализации SBJson

Привет, у меня проблемы с десериализацией JSON.

Я использую SBJson, данные возвращаются из веб-службы.net.

Это возвращенный JSON (сокращенный)

{
    "id": "1",
    "result": [
        {
            "questionID": 21,
            "question": "What is the secret of eternal life?"
        },
        {
            "questionID": 20,
            "question": "What is the meaning of life?"
        }
    ]
}

Я так далеко, используя следующий код

-(void) dataLoaded:(NSData*)data {

    NSString* jsonString = [[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding] autorelease];

    NSDictionary *jsonObject = [jsonString JSONValue];    

        NSLog(@"data : %@", [jsonObject valueForKey:@"result"]);
 }

Следующая строка [jsonObject valueForKey:@"result"] возвращает следующие данные

(
        {
        question = "What is the secret of eternal life?";
        questionID = 21;
    },
        {
        question = "What is the meaning of life?";
        questionID = 20;
    }
)

Как я могу получить эти данные в массив?

Это первый раз, когда я использую Json, поэтому я не совсем уверен, что происходит.

Спасибо Мик

1 ответ

Вы уже возвращаете массив... Вы можете использовать что-то вроде этого, чтобы создать указатель на этот массив:

NSDictionary *jsonObject = [jsonString JSONValue];
NSArray *myJsonArray = [jsonObject valueForKey:@"result"];

РЕДАКТИРОВАТЬ (после некоторых комментариев)

Поскольку вы регистрируете [jsonObject valueForKey:@"result"] а также NSLog печатает вам то, что вы опубликовали, уверен, что объект является NSArray,

Вы можете считать и регистрировать, как это (обратите внимание на %d):

int c = [myJsonArray count];
NSLog("My array's count is: %d", c);
Другие вопросы по тегам