如何避免json值的空数组?

时间:2015-09-05 06:56:18

标签: ios objective-c

 if(arrSubCategory.count>0||arrSubCategory!=Nil)
            {
            for (NSDictionary *dicsub in arrSubCategory)
            {
                [dicSubCategory setObject:[dicsub objectForKey:@"category_id"] forKey:@"category"];
                [dicSubCategory setObject:[dicsub objectForKey:@"parent_id"] forKey:@"parent"];
                [dicSubCategory setObject:[dicsub objectForKey:@"image"] forKey:@"image"];
                [dicSubCategory setObject:[dicsub objectForKey:@"name"] forKey:@"name"];
                  NSLog(@"sub category parsing%@",dicSubCategory);
                [file addSubCategories:dicSubCategory];
            }

这里我检查数组计数是否大于零,然后条件必须检查。

- >但会发生什么意味着

(
  ()
)

一个空数组已经存储在我的数组中,如何从我的json值中避免这个空。

3 个答案:

答案 0 :(得分:0)

您可以检查arr中的对象是NSDictionary还是

 for (NSDictionary *dicsub in arrSubCategory) 
 {
     if([dicsub isKindOfClass:[NSDictionary class]])
     {
            [dicSubCategory setObject:[dicsub objectForKey:@"category_id"] forKey:@"category"];
            [dicSubCategory setObject:[dicsub objectForKey:@"parent_id"] forKey:@"parent"];
            [dicSubCategory setObject:[dicsub objectForKey:@"image"] forKey:@"image"];
            [dicSubCategory setObject:[dicsub objectForKey:@"name"] forKey:@"name"];
            NSLog(@"sub category parsing%@",dicSubCategory);
            [file addSubCategories:dicSubCategory];
     }
 }

答案 1 :(得分:0)

您正在检查对象是否为零,您应该检查其计数是否为零。

尝试这种方式:

NSArray *arr = [DicWholeCategories objectForKey:@"subcategory"];

if(arr.count > 0)
{
   [arrSubCategory addObject:arr];
}

答案 2 :(得分:0)

有很多错误:

首先,你的情况是错误的。它应该是

if(arrSubCategory.count > 0 && !arrSubCategory)

您需要&&运算符而不是||,因为两个条件都应该为true表示数组计数应该大于0且不应该nil继续。

对象与Nil的比较也是错误的,它应该是nil

第二件事是不要将nil(object != nil)之类的任何对象进行比较,以便更好地使用(!object)

最后一件事,如果你想检查对象是null或不使用isKindOfClass:方法,它会返回BOOL值。

if (![arrSubCategory isKindOfClass:[NSNull class]])

为了避免空数组,只需一行即可:

if ([arrSubCategory count] > 0)