Рассмотрим эту строку JSON.
{
"arrayOfData": [
{
"body": "123",
"date": 1333023644,
"mid": 12,
"read_state": 0
},
{
"body": ": )",
"date": 1332968570,
"mid": 4,
"read_state": 1
},
{
"body": "1234",
"date": 1331844024,
"mid": 1,
"read_state": 1
}
]
}
Это допустимая строка JSON. Вы можете проверить действительность, используя http://jsonlint.com/
Предположим, у вас есть данные JSON в переменной jsonData
, которая имеет тип NSData. Используя SBJSON , вы можете анализировать свой JSON как
NSDictionary *jsonDictionary = [jsonData JSONValue];
NSArray *array = [jsonDictionary objectForKey:@"arrayOfData"];
NSMutableArray *result = [[NSMutableArray alloc]init];
for(NSDictionary *dict in array){
[result addObject:[dict objectForKey:@"body"]];
}
После этой операции все значения для ключа body
будут в массиве результатов.
Если '3' было счетчиком массива, вы могли бы включить это значение в JSON как
{
"numberOfElementsInArray": 3,
"arrayOfData": [
{
"body": "123",
"date": 1333023644,
"mid": 12,
"read_state": 0
},
{
"body": ": )",
"date": 1332968570,
"mid": 4,
"read_state": 1
},
{
"body": "1234",
"date": 1331844024,
"mid": 1,
"read_state": 1
}
]
}
См. это руководство по JSON. Вы должны прочитать этот веб-сайт, чтобы понять JSON
Добавлено Hot Licks
Что вы не понимаете, так это то, что исходный JSON был по сути такой:
[
3,
{
"body": "123",
"date": 1333023644,
"mid": 12,
"read_state": 0
},
{
"body": ": )",
"date": 1332968570,
"mid": 4,
"read_state": 1
},
{
"body": "1234",
"date": 1331844024,
"mid": 1,
"read_state": 1
}
]
Он был отформатирован по-другому, потому что это был дамп объекта NSLog, а не исходный источник JSON. Совершенно законный JSON.