 <p>It is solved. The code works as follows. I made a wrong drill down. Truly thanks, I have learned a lot:</p> <pre><code> class func jsonAsUSDAIdAndNameSearchResults (json: NSDictionary) -&gt; [(name: String, idValue: String)] { var usdaItemsSearchResults: [(name: String, idValue: String)] = [] var searchResult: (name: String, idValue: String) if json["hits"] != nil { let results:[AnyObject] = json["hits"]! as [AnyObject] for itemDictionary in results { let fields: NSDictionary = itemDictionary["fields"]? as NSDictionary let name:String? = fields["item_name"] as? String let idValue:String? = itemDictionary["_id"]? as? String if (name? != nil &amp;&amp; idValue? != nil) { searchResult = (name: name!, idValue: idValue!) usdaItemsSearchResults += [searchResult] } } } return usdaItemsSearchResults } </code></pre>