В настоящее время у меня возникает странная проблема, связанная с анализом некоторого JSON при использовании SBJsonParser.
Теперь анализируемый JSON выглядит следующим образом.
[
{
"Company":{
"id":"1",
"company_name":null
},
"relations":{
"store":[
{
"id":"1",
"restaurant_name":"Dubai",
"brief_description":null
},
{
"id":"2",
"restaurant_name":"Test2",
"brief_description":null
}
]
}
}
]
Я могу легко создать NSDictionary и заполнить его правильной информацией для Company узла (?).
Но моя проблема возникает, когда дело доходит до отношения и хранилище узлов.
NSDictionary *relations = [object valueForKey:@"relations"];
NSArray *multipleStores = [relations valueForKey:@"store"];
NSLog(@"relations: %@", relations);
for (NSDictionary *singleStore in multipleStores){
NSLog(@"Single Store: %@", singleStore);
[company grabStoreInformation:singleStore];
}
Вот то, что возвращает NSLog выше.
relations: (
{
store = (
{
"brief_description" = "<null>";
id = 1;
"restaurant_name" = Dubai;
},
{
"brief_description" = "<null>";
id = 2;
"restaurant_name" = Test2;
}
);
}
)
Теперь это было бы хорошо, если бы не былоне для того, что происходило в NSLog.Кажется, что SingleStore на самом деле не получает отдельные узлы хранилища, а добавляет оба узла хранилища.
Single Store: (
{
"brief_description" = "<null>";
id = 1;
"restaurant_name" = Dubai;
},
{
"brief_description" = "<null>";
id = 2;
"restaurant_name" = Test2;
}
)
Проблема в том, что мне нужно, чтобы каждый узел хранилища был добавлен в NSMutableArray.Таким образом, NSDictionary будет затем добавлен в NSMutableArray и затем доступен в другом месте (для источника данных UITableView).
Любая помощь будет очень полезна для разделения узлов хранилища.
РЕДАКТИРОВАТЬ Как и просили, весь код для разбора:
SBJsonParser *parser = [[SBJsonParser alloc] init];
// parse the JSON string into an object - assuming [response asString] is a NSString of JSON data
NSDictionary *object = [parser objectWithString:[response asString] error:nil];
[parser release];
NSDictionary *companyDetails = [object valueForKey:@"Company"];
MACompany *company = [MACompany sharedMACompany];
[company initWithDetails:companyDetails];
NSDictionary *relations = [object valueForKey:@"relations"];
NSArray *multipleStores = [relations valueForKey:@"store"];
NSLog(@"relations: %@", relations);
for (NSDictionary *singleStore in multipleStores){
NSLog(@"Single Store: %@", singleStore);
[company grabStoreInformation:singleStore];
}
Как вы можете видеть, я полагаюсь на одноэлементный класс для копирования элементов JSON.Я не думаю, что это имеет отношение к тому, чего я пытаюсь достичь, когда речь заходит о том, как разделить словарь одного магазина.