2016-05-10 8 views
0

こんにちは、私はjsonリクエストを作成しようとしていて、その結果の一部を文字列の配列に入れたいと思っています。Jsonがスワイプで文字列配列を返す

だから私は、次のコード

var arrRes = [[String:AnyObject]]() 
var nameaRR = [String]() 
override func viewDidLoad() { 
    super.viewDidLoad() 

    Alamofire.request(.GET, "https://graph.facebook.com/search", parameters: ["q": "", "type": "place", "center": "37.928319,23.7036673", "distance": "10000","limit": "1000", "access_token": "SomeToken", "expires_in": "5184000"]) 
     .responseJSON { (responseData) -> Void in 
      if((responseData.result.value) != nil) { 
       let swiftyJsonVar = JSON(responseData.result.value!) 
       //print(swiftyJsonVar) 
       if let resData = swiftyJsonVar["data"].arrayObject { 
        self.arrRes = resData as! [[String:AnyObject]] 


        self.nameaRR = swiftyJsonVar["data"]["name"] as! [String] 

        print(self.nameaRR) 

       } 
       if self.arrRes.count > 0 { 
        self.kati.reloadData() 
       } 
      } 

    } 


} 

JSON Resulが、私は警告
Cast from 'JSON' to unrelated type '[String]' always fails

を取得するが、私はどのようにすることができますがこだわっている以下の

{ 
     "data" : [ 
     { 
      "category_list" : [ 
      { 
       "id" : "272705352802676", 
       "name" : "Outdoors" 
      }, 
      { 
       "id" : "115725465228008", 
       "name" : "Region" 
      } 
      ], 
      "id" : "552889064768971", 
      "name" : "Παλαιο Φαληρο", //This String i want to put in an Array 
      "category" : "Local business", 
      "location" : { 
      "street" : "", 
      "city" : "Palaión Fáliron", 
      "country" : "Greece", 
      "longitude" : 23.6944070162, 
      "zip" : "17562", 
      "latitude" : 37.9284637008, 
      "state" : "" 
      } 
     } 
] 
} 

あるを持っていますすべての配列を配列nameaRRに配置します。 誰かが私の間違いを見つけるのを助けることができますか?ありがとう!

+0

好きに見えます?そして 'name'は配列ではありません。これは常に 'String'です – vadian

+1

このコードにはかなりの問題があります。最も明白なのは次のとおりです:1.' swigtyJsonVar ["data"] 'は配列ですので' ["data"] ["name"] 'is 'name'が取得された後でさえ、それは単に文字列であり、文字列の配列ではありません(' [String(文字列の配列)ではありません] ')、' nameaRR'に代入することはできません。私はこれが意味をなされることを願っています... – Alladinian

答えて

3

では、すでに `resData`は、なぜあなたはそれを使用し続けるのではなく、` swiftyJsonVar`を再利用しない間接参照しているので、その

if let resData = swiftyJsonVar["data"] as? [[String:AnyObject]] { 
    if let categorylist = resData["category_list"] as? [[String:AnyObject]]{ 
    if let id = categorylist["id"] as? Int{ 
    print(id) 
} 
} 
} 
+0

はい、正しいです!ありがとう –

関連する問題