Вопросы десериализации 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);