首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何避免来自json值的空数组?

如何避免来自json值的空数组?
EN

Stack Overflow用户
提问于 2015-09-05 14:56:18
回答 3查看 133关注 0票数 1
代码语言:javascript
运行
复制
 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];
            }

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

->but发生了什么意味着什么

代码语言:javascript
运行
复制
(
  ()
)

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

EN

回答 3

Stack Overflow用户

发布于 2015-09-05 15:01:04

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

代码语言:javascript
运行
复制
 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];
     }
 }
票数 0
EN

Stack Overflow用户

发布于 2015-09-05 15:08:17

你正在检查Object是否为nil,你应该检查它的计数是否为零。

尝试这样做:

代码语言:javascript
运行
复制
NSArray *arr = [DicWholeCategories objectForKey:@"subcategory"];

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

Stack Overflow用户

发布于 2015-09-05 18:53:10

有很多错误:

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

代码语言:javascript
运行
复制
if(arrSubCategory.count > 0 && !arrSubCategory)

这里需要一个&&运算符,而不是||,因为这两个条件都应该为真,这意味着数组计数应该大于0,而不应该为nil才能继续。

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

第二,不要将任何像(object != nil)这样的对象与nil进行比较,最好只使用(!object)

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

代码语言:javascript
运行
复制
if (![arrSubCategory isKindOfClass:[NSNull class]])

为了避免空数组,只需要一行就足够了:

代码语言:javascript
运行
复制
if ([arrSubCategory count] > 0)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32410395

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档