2017-01-19 26 views
0

我是IOS開發人員的初學者。我使用Alamofire從URL獲取JSON。我試圖通過JSON循環存儲在Coredata中。使用Alamofire循環瀏覽JSON並在Coredata中快速存儲3使用Alamofire

JSON:

[{ 
"stocks": [ 
      { 
      "growth": "29.87", 
      "stock_name": "BLA" 
      }, 
      { 
      "growth": "28.87", 
      "stock_name": "ADVANC" 
      } 
      ], 
"template_name": "stock growth more than 20 in 90 day" 
} , ........ 
] 

我的代碼

var arrRes = [[String:AnyObject]]() 


    func loadJSONTemplate() { 


     Alamofire.request("http://1xx.xxx.xxx.xx/").responseJSON { response in 
      print(response.result) 
      if((response.result.value) != nil) { 
       if let data = response.result.value { 

        self.arrRes = data as! [[String:AnyObject]] 
       } 
      } 

     for i in 0 ..< self.arrRes.count { 

       var a = self.arrRes[i] 

       let templatename = a["template_name"] as? String 
       let teststock = a["stock_name"] as? String 
       print(teststock) 

     } 

在coredata, 「TEMPLATE_NAME」 具有價值,但是, 「stock_name」 和 「增長」 是零 我不理解。請告訴我如何解決這個問題。謝謝

回答

0

你試圖從json的另一個級別訪問數據。 所以template_name和股票是同齡人,但stock_name和增長是在組成股票子女的對象中。

你需要做的是這樣

let templatename = a["template_name"] as? String 
let stockArr = a["stocks"] as? Array 

for stock in stockArr { 
    let stockName = stock["stock_name"] 
    let growth = stock["growth"] 
} 

我會鼓勵你,一旦你感覺更舒適,通過的CocoaPods退房ObjectMapper。提前一點,但讓生活變得更容易。

+0

謝謝你的回答。請告訴我關於coredata。如果我將存儲{ 「增長」: 「29.87」, 「stock_name」: 「BLA」 }, { 「增長」: 「28.87」, 「stock_name」: 「ADVANC」 } – hyskoa

+0

核心數據是手機上的數據庫,所以你會解析你的JSON到數據庫中。您在這些表格之間創建表格和關係。這裏有太多的代碼可以發佈給你,但互聯網上有很多例子。 https://www.raywenderlich.com/115695/getting-started-with-core-data-tutorial – karnett