计算JSON对象的数量 - Objective-C

时间:2013-04-17 18:03:28

标签: objective-c json

示例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"];

中读取JSON

3 个答案:

答案 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属性!