示例JSON:
{ "image" : "http:\/\/www.domain.com\/blah\/blah\/blah\/5yph0gbfj3ip41a.jpg",
"0" : { "thing1" : "Hello",
"thing2" : "06\/21\/2013"
},
"1" : { "thing1" : "Goodbye",
"thing2" : "06\/28\/2013"
}
}
如何计算"0" : {whatever}
出现的次数?他们会增加一个。与上面的例子一样,我希望它返回2。
我正在从ID [zoneJSONobject objectForKey:@"thing1"];
答案 0 :(得分:1)
一种方法是使用- [NSDictionary count]
方法(see docs)作为密钥总数,然后减去您不想要计算的内容(如"image"
例如。)
另一种方法是迭代键,如:
int keyCount = 0;
for (NSString *key in myDict)
if (/* the string is a number */ )
keyCount++;
(如果字符串是数字,有很多单独的SO文章在测试。)
但是,最好的方法是修改JSON对象以在数组中将这些字典返回给您,这样您就不必在开始迭代之前对它们进行计数。我不确定您是否可以使用该选项。
答案 1 :(得分:0)
似乎图像中有一个前导条目,然后是您想要计算的所有项目。然后你可以使用减法运算符:
int n = dictionary.count - 1;
答案 2 :(得分:0)
你想要计算根密钥吗?使用buit-in NSJSONserialization类从中创建NSObject。在这种情况下,您将获得一个NSDictionary。调用它的allKeys属性,然后调用count属性!