2015-11-21 46 views
0

我正在使用Alamofire从API获取数据。我使用SwiftyJSON来解析JSON响应。目前,我正在遍历产品数据并希望提取产品详细信息并将其显示在集合视图中。问题是,我似乎无法弄清楚如何访问阵列中的每个产品。以下是返回的阵列:SwiftyJSON问题

{ 
        "1": { 
        "product_id": 2982493187, 
        "merged_status": "TRUE", 
        "merged": [ 
         { 
         "id": 2982493187, 
         "title": "Waves Eclipse Tee in Black", 
         "handle": "waves-eclipse-tee-in-black", 
         "published_at": "2015-10-09T21:00:50-07:00", 
         "published_scope": "global", 
         } 
        ] 
        } 
       }, 
       { 
        "2": { 
        "product_id": 2982432131, 
        "merged_status": "TRUE", 
        "merged": [ 
         { 
         "id": 2982432131, 
         "title": "Waves Eclipse Tee in Off White", 
         "handle": "waves-eclipse-tee-in-off-white", 
         "published_at": "2015-10-09T21:00:50-07:00", 
         "published_scope": "global", 
         } 
        ] 
        } 
       } 

对于这些产品中的每一个,我都想访问product_id。我试图这样做:productArray [0] [“produdct_id”]。int,但它似乎不工作。有任何想法吗?

+0

你的问题的情况下表明你的顶层,productArray,应该是作为字典访问,而不是数组 –

+0

我该如何去做呢? –

+2

以上是无效的JSON,如果它是什么被解析。 – JRD

回答

0

您没有在搜索结果中的数组,但与“1”,“2”键的字典等

let product_id = result["1"]["product_id"].int 
+0

返回为零。 –

+1

你有没有有效的json上面的json。您可以通过将其插入[JSONLint](http://jsonlint.com/)来查看详细信息。 – JRD

0

看来,结果JSON是字典的数组,所以您可以通过

let product_id = result[0]["1"]["product_id"].int 
0

访问的product_id试试这个:

let jsonProductsArray = JSON(theRawJSONData).array 

for (key, productJSON):(String, JSON) in jsonProductsArray { 
    print(key); 
    let product_id = productJSON["product_id"].int 
    print(product_id) 
}