2017-02-14 32 views
0

我有这些使用PHP mysqli生成的JSON值。如何将JSON数组值赋给Swift 3.0中的变量?

{"valid":"1","name":"NAME 1","dept":"IT"} 
{"valid":"1","name":"NAME 2","dept":"IT"} 
{"valid":"1","name":"NAME 3","dept":"PSD"} 
{"valid":"1","name":"NAME 4","dept":"PSD"} 

但在swift 3.0中,我只知道在x代码中手动声明一个数组值如下。

import UIKit 
class ViewController: UIViewController{ 

    @IBOutlet var divisionLbl: UITextField! 

    var division = ["IT","FAD","PSD"] 

    override func viewDidLoad() { 
     super.viewDidLoad() 
    } 
} 

我的目标是检索JSON值并将其赋值给变量。

可能吗?

感谢。

+0

你能告诉你怎么做API请求,你是如何得到这个JSON的代码。 –

回答

0

您可能想要使用JSONSerialization类'jsonObject(with:options :)方法。

class func jsonObject(with data: Data, options opt: JSONSerialization.ReadingOptions = []) throws -> Any 

假设你已经有了JSON数据对象,这样的事情应该工作:

// data = your JSON data 

do { 
    var assignedData = try JSONSerialization.jsonObject(with: data, options: .mutableContainers) 
    // continue... 
} catch { 
    print("Error: \(error)") 
    // Handle exception 
} 
+0

我可以在do语句之外声明变量吗? – Jamilah

+0

@Jamilah是的,你可以,但我认为在这种情况下没有多大意义。如果你这样做,你需要声明它是可选的,任何?,然后处理,因为jsonObject(with:options :)返回一个Any。我只是把你所有的代码放在try语句下的do语句中处理“assignedData”。 – icy1007