【问题标题】:Loop through JSON and store in Coredata in swift 3 using Alamofire使用 Alamofire 在 swift 3 中循环遍历 JSON 并存储在 Coredata 中
【发布时间】:2017-06-04 18:10:42
【问题描述】:

我是 IOS 开发人员的初学者。我使用 Alamofire 从 URL 获取 JSON。我试图通过 JSON 循环存储在 Coredata 中。

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”和“growth”是 nil 我不明白。请告诉我如何解决这个问题。谢谢

【问题讨论】:

    标签: ios json swift core-data swift3


    【解决方案1】:

    您正在尝试从 json 的另一个级别访问数据。 所以 template_name 和stocks 是对等的,但是stock_name 和growth 是在构成stocks 子对象的对象中。

    你需要做类似的事情

    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。有点提前,但让生活更轻松。

    【讨论】:

    • 感谢您的回答。请告诉我有关 coredata 的信息。如果我要存储 { "growth": "29.87", "stock_name": "BLA" }, { "growth": "28.87", "stock_name": "ADVANC" }
    • 核心数据是手机上的数据库,所以你需要将你的json解析到数据库中。您创建表和这些表之间的关系。这里有太多代码可以为您发布,但互联网上有很多示例。 raywenderlich.com/115695/…
    猜你喜欢
    • 1970-01-01
    • 2018-07-31
    • 1970-01-01
    • 2018-06-19
    • 2021-03-20
    • 2012-07-20
    • 2015-09-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多