-3

示例 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 读取 JSON:[zoneJSONobject objectForKey:@"thing1"];

4

3 回答 3

1

一种方法是使用该- [NSDictionary count]方法(请参阅文档)获取键的总数,然后减去您不想计算的值(如果存在)("image"例如。)

另一种方法是遍历键,例如:

int keyCount = 0;
for (NSString *key in myDict)
    if (/* the string is a number */ )
        keyCount++;

(有很多关于测试字符串是否为数字的单独的 SO 文章。)

但是,最好的方法是修改 JSON 对象以在数组中将这些字典返回给您,这样您就不必在开始迭代之前对它们进行计数。我不确定您是否可以使用该选项。

于 2013-04-17T18:10:18.527 回答
0

似乎图像有一个主要条目,然后是您要计算的所有项目。然后你可以使用减法运算符:

int n = dictionary.count - 1;
于 2013-04-17T18:07:31.680 回答
0

你想计算根键吗?使用内置的 NSJSONserialization 类从中创建 NSObjects。在这种情况下,您将获得一个 NSDictionary。调用它的 allKeys 属性,然后就是 count 属性!

于 2013-04-17T18:07:43.443 回答