ios - 解析 View Controller 之间的 JSON 数据

标签 ios json swift uipickerview

此代码获取 JSON 数据并显示在该代码所在的 View Controller 上。我试图弄清楚如何在另一个 View Controller 上使用此页面的结果,这将是我试图获取要显示的代码结果的下面第二个 View Controller 的大部分代码。

      func paraseData()
{

    fetchedFiName = []

    let url = ""
    var request = URLRequest(url: URL(string: url)!)
    request.httpMethod = "GET"

    let configuration = URLSessionConfiguration.default
    let session = URLSession(configuration: configuration, delegate: nil, delegateQueue: OperationQueue.main)

    let task = session.dataTask(with: request) { (data, response, error) in
        if error != nil {
            print("Error")
        }
        else{

            do{
                let fetchedData = try JSONSerialization.jsonObject(with: data!, options: .mutableLeaves) as! NSArray
                //print(fecthdata)

                for eachFetchedfiName in fetchedData {
                    let eachfiName = eachFetchedfiName as! [String :Any]
                    let fiName = eachfiName["financial_institution"] as! String
                    let oneYear = eachfiName["one_year"] as! String
                    let twoYear = eachfiName["two_year"] as! String
                    let threeYear = eachfiName["three_year"] as! String
                    let fourYear = eachfiName["four_year"] as! String
                    let fiveYear = eachfiName["five_year"] as! String


                    self.fetchedFiName.append(rates(fiName: fiName, oneYear: oneYear, twoYear: twoYear, threeYear: threeYear, fourYear: fourYear, fiveYear: fiveYear))

                }

                //print(self.fetchedFiName)
                self.mtgRates.reloadData()


            }

            catch{
                print("Error 2")
            }
        }

    }
    task.resume()
}


}
class rates {

var fiName: String
var oneYear: String
var twoYear: String
var threeYear: String
var fourYear: String
var fiveYear: String

init(fiName: String, oneYear: String, twoYear: String, threeYear: String, fourYear: String, fiveYear: String) {
    self.fiName = fiName
    self.oneYear = oneYear
    self.twoYear = twoYear
    self.threeYear = threeYear
    self.fourYear = fourYear
    self.fiveYear = fiveYear

}

}

这是我试图将结果传递给第二个 View Controller 的代码。我正在尝试使用 JSON 数据中的贷方名称填充 pickerview...我已经为这个问题苦苦挣扎了好几天...请思考。

func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {

    return fetchedFiName[row].fiName
}

func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {

    return fetchedFiName.count
}

func numberOfComponents(in pickerView: UIPickerView) -> Int {

    return 1
}

func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
    lenderName.text = fetchedFiName[row].fiName
    self.view.endEditing(false)
}

最佳答案

Investigate续集。离开当前 View Controller 时,您可以在目标 View Controller 上设置一个值。代码看起来像:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    let destinationViewController = segue.destination as! YourViewController
    destinationViewController.json = yourJSONObj
}

关于ios - 解析 View Controller 之间的 JSON 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44146720/

相关文章:

java - 从 Json 数据中排除属性而不反序列化它

ios - 请求接收推送操作的权限

swift - 如何写入 NSPasteboard 并使用相同的指针获取它

ios - 无法呈现 Swifty Button 实例 : dlopen(SwiftyButton. 框架,1):未加载库

iOS 8 : Game Stuck on Loading Screen

ios - iOS 6和7中的UISearchbar自定义

ios - Swift Playground 错误 : Execution was interrupted, 原因:信号 SIGABRT

jquery - 使用 jQuery 获取数组数据循环并将其附加到组合框副本上

javascript - 从 JsonConvert.SerializeObject(obj) 返回的 JSON 在 Json.parse 中返回错误 "Unexpected token & "

swift - 如果 if 语句被调用并且所有条件都为 true,那么所有 else if 语句也会被调用吗?