Objective c 如何检查传入的JSON提要是否包含单个记录或多个记录?

Objective c 如何检查传入的JSON提要是否包含单个记录或多个记录?,objective-c,ios,json,nsarray,nsdictionary,Objective C,Ios,Json,Nsarray,Nsdictionary,我必须在iOS上解析这个JSON { "log_by_dates": { "logs": [ { "date": "Wednesday 5 December 2012", "exercises": "0", "workouts": "0", "log_entries": "0" }, { "date": "Tuesday

我必须在iOS上解析这个JSON

{
"log_by_dates": {
    "logs": [
        {
            "date": "Wednesday 5 December 2012",
            "exercises": "0",
            "workouts": "0",
            "log_entries": "0"
        },
        {
            "date": "Tuesday 4 December 2012",
            "exercises": "4",
            "workouts": "2",
            "log_entries": "7"
        }
    ]
 }
}
我已经编写了以下代码来解析它

NSArray *logs = [[(NSDictionary*)results objectForKey:@"log_by_dates"] objectForKey:@"logs"];
        for (NSDictionary *aLog in logs) {
            Log *newLog = [[Log alloc] initWithDate:[aLog objectForKey:@"date"]               withExercises:[aLog objectForKey:@"exercises"]
                                       withWorkouts:[aLog objectForKey:@"workouts"]];
            if (!data) {
               data = [[NSMutableArray alloc] init];
            }
但问题是,有时我会得到这样的JSON值

{

"log_by_dates": {
    "logs":
        {
            "date": "Wednesday 5 December 2012",
            "exercises": "0",
            "workouts": "0",
            "log_entries": "0"
        }
  }
} 
这使得我的代码崩溃

请指导我,在解析之前,我使用if()else条件检查传入的JSON对象是否包含单个JSON对象的多个记录,以便编写适当的代码来处理字典或数组。
谢谢,

请像这样更新您的代码

NSArray *logs = [[(NSDictionary*)results objectForKey:@"log_by_dates"] objectForKey:@"logs"];
if([logs isKindOfClass:[NSArray class]]) {
    for (NSDictionary *aLog in logs) {
        Log *newLog = [[Log alloc] initWithDate:[aLog objectForKey:@"date"]               withExercises:[aLog objectForKey:@"exercises"]
                                   withWorkouts:[aLog objectForKey:@"workouts"]];
        if (!data) {
            data = [[NSMutableArray alloc] init];
        }
    }
}
else if([logs isKindOfClass:[NSDictionary class]]) {
    NSDictionary *aLog = (NSDictionary *)logs;
    Log *newLog = [[Log alloc] initWithDate:[aLog objectForKey:@"date"]               withExercises:[aLog objectForKey:@"exercises"]
                               withWorkouts:[aLog objectForKey:@"workouts"]];
    if (!data) {
        data = [[NSMutableArray alloc] init];
    }
}

像这样检查条件

if([[[(NSDictionary*)results objectForKey:@"log_by_dates"] objectForKey:@"logs"] isKindOfClass:[NSArray class]])
{
    // Do your Array Stuff Here
} else {
    // Do your Dictionary Stuff Here
}

for
循环之前插入此项:

if(![logs iskindof类:[NSArray类]]
{
logs=[NSArray arrayWithObject:logs];
}

它是如何崩溃的,错误消息是什么?