【问题标题】:How to assign JSON Array value into variable in Swift 3.0?如何在 Swift 3.0 中将 JSON 数组值分配给变量?
【发布时间】:2017-02-14 00:01:33
【问题描述】:

我有这些使用 PHP mysqli 生成的 JSON 值。

 {"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 值并将其分配给变量。

有可能吗?

谢谢。

【问题讨论】:

  • 您能否显示代码您如何提出 API 请求以及如何获取此 JSON。

标签: arrays json swift3 xcode8


【解决方案1】:

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

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

假设您已经拥有 JSON Data 对象,这样的事情应该可以工作:

// data = your JSON data

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

【讨论】:

  • 我可以在do语句之外声明变量吗?
  • @Jamilah 是的,你可以,但我认为在这种情况下没有多大意义。如果你这样做,你需要将它声明为可选,Any?,然后在任何地方处理它,因为 jsonObject(with:options:) 返回一个 Any。我只是将处理“assignedData”的所有代码放在 try 语句下的 do 语句中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多