 <ol> <li><p>It is logging the number 5 because there is 5 keys in each of your dictionaries (<code>console</code>, <code>game</code>, <code>id</code>, <code>model</code>, <code>publisher</code>). If instead of logging the <code>[consoleDictionary count]</code> you simply add one to an <code>int</code> counter each time, you would get the expected result in your counter at the end.</p></li> <li><p>You can obtain the number of objects is a much more easier way: <code>[self arrayFromJSON]</code> is an array</p></li> </ol> <p>Typically:</p> <pre><code>NSInteger nbPS3 = [[self arrayFromJSON] indexesOfObjectsPassingTest:^(id obj, NSUInteger idx, BOOL *stop) { return [obj[@"model"] isEqualToString:@"PlayStation 3"]; }].count </code></pre>