解析视图控制器之间的JSON数据

时间:2017-05-23 23:43:48

标签: ios json swift uipickerview

此代码获取JSON数据并在视图控制器上显示此代码所在的位置。我试图找出如何使用此页面上的结果在另一个视图控制器上将大部分代码来自第二个视图控制器下面我试图获取要显示的代码的结果。

      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

}

}

这是我试图将结果传递给第二个视图控制器的代码。我试图用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)
}

1 个答案:

答案 0 :(得分:0)

Investigate seques。离开当前视图控制器时,可以在目标视图控制器上设置值。代码看起来像:

StatementResult result1 = session.run(
    "MATCH (n) where n.label = {label} RETURN n",
    parameters( "label", "C0000119")
);
List<Node> nodes = new ArrayList<Node>();
while ( result1.hasNext() )
{
    Record record = result1.next();
    Value value = record.get("n");
    System.out.println( value.asString() );
    nodes.add(value.asNode());
}