我无法检查我的某个钥匙是否为空。
以下是我正在处理的已解析的JSON响应:
案例1(键'标签'不为空)
{
height = 480;
pid = "a@bsioihf93u420934";
tags = (
{
attributes = {
mood = {
confidence = 42;
value = happy;
};
smiling = {
confidence = 52;
value = false;
};
};
center = {
x = "49.86";
y = "60.52";
};
confirmed = 0;
width = "50.28";
}
);
url = "http://abc/efg/hijk/lmnop.jpg";
width = 360;
}
有时候响应如下所示:
案例2(键'标签'为空)
{
height = 480;
pid = "a@bsioihf93u420934";
tags = (
);
url = "http://abc/efg/hijk/lmnop.jpg";
width = 360;
}
当我在案例2中检查'tags'是否为空时,它返回false:
if ([photo objectForKey:@"tags"] == nil)
检查日志中[photo objectForKey:@"tags"]
的实际值返回:
(
)
我怎样才能检查'标签'是否为空?
答案 0 :(得分:7)
尝试:
if ([[photo objectForKey:@"tags"] count] == 0)
答案 1 :(得分:0)
您究竟如何解析和存储JSON文本?看起来你可能正在将它存储到NSArray / NSDictionary(也许)?稍微澄清一下如何解析它以及存储它的数据结构会有所帮助。
假设您将它存储在NSArray / NSDictionary中,那么您当前正在检查“标签”是否为空的方式有什么问题?
如果
if ([photo objectForKey:@"tags"] == nil)
在第一种情况下返回false而在第二种情况下返回true,这意味着在第二种情况下,键“tag”的数据结构中没有值,这意味着“tags”字段为空。
这实际上似乎是最好和最实用的检查方法。