在Objective C计数JSON对象方面需要帮助。
我正在使用github.com/amarcadet/XMLReader/来读取我的XML。
如果我的JSON返回一个以上的对象,我的代码会完美地计算这些对象。但是,如果我的JSON只返回一个对象,它就会计算错误。
这是我的JSON,有两个对象:
QuestionTotal = {
Question = ({
Description = {
text = "bla bla";
};
id = {
text = "123";
};
ord = {
text = 1;
};
}, {
Description = {
text = "blu blu";
};
id = {
text = "456";
};
ord = {
text = 2;
};
});
};
我的目标c代码:
NSDictionary *xmlDictionary;
NSMutableArray *questions = [[[[[[[self.xmlDictionary objectForKey:@"Envelope"] objectForKey:@"Body"] objectForKey:@"GetInterviewResponse"] objectForKey:@"GetInterviewResult"] objectForKey:@"Obj"] objectForKey:@"QuestionsTotal"] objectForKey:@"Question"];
NSLog(@"问题总数:%lu",(无符号长)[问题计数]);
上面的代码返回日志:问题总数:2
如果JSON是:
QuestionTotal = {
Question = {
Description = {
text = "bla bla";
};
id = {
text = "123";
};
ord = {
text = 1;
};
};
};
代码返回日志:问题总数:3这是错误的。
刚刚发现我需要插入以下代码才能使XMLReader工作:
if (![list isKindOfClass:[NSArray class]])
{
// if 'list' isn't an array, we create a new array containing our object
list = [NSArray arrayWithObject:list];
}
当数组只有一个对象时,一切都很好。
谢谢大家。