【问题标题】:Swift 2 Json NSDictionary to String gives Optional("String") Error [duplicate]Swift 2 Json NSDictionary to String 给出 Optional("String") 错误 [重复]
【发布时间】:2016-02-08 16:14:36
【问题描述】:

我有工作 json 解析代码,当我举个例子时,post["name"] as?字符串给出输出 Optional("John")

我只想要输出 = 约翰

我的代码在这里

func post(url : String, completionHandler : ((success : Int, message : String) -> Void)) {

        guard let url = NSURL(string: url as String) else {

            return
        }

        let urlRequest = NSURLRequest(URL: url)


        let config = NSURLSessionConfiguration.defaultSessionConfiguration()
        let session = NSURLSession(configuration: config)

        let task = session.dataTaskWithRequest(urlRequest, completionHandler: { (data, response, error) in
            guard let responseData = data else {

                return
            }
            guard error == nil else {

                print(error)
                return
            }

            let post: NSDictionary
            do {
                post = try NSJSONSerialization.JSONObjectWithData(responseData,
                    options: []) as! NSDictionary
            } catch  {

                return
            }

            // Add user limits to Session

            let name = post["name"] as? String


            print(name) // Here gives output Optional("John")




            let numberFromString = Int((post["success"] as? String)!)

            completionHandler(success: (numberFromString)!, message: (post["message"] as? String)!)

        })
        task.resume()

    }

您可以在此处查看我的所有工作代码。 我只想要 output = John ,

谢谢。

【问题讨论】:

  • 当然它给出了一个可选的。 您的代码完全按照您的指示行事。此外,你的 Do-Try-Catch 是错误的(强制下垂可能会崩溃,它不会被 catch 抓住)。您需要进一步研究 Swift Optionals 的基础知识:developer.apple.com/library/ios/documentation/Swift/Conceptual/…
  • @dzk 没有人我尝试但不改变
  • @EricD。我该如何更改该代码 Eric 任何想法?

标签: ios json swift nsdictionary


【解决方案1】:

您正在打印一个可选值,这意味着您需要打开它。例如

print(name!)

但如果 name 为 nil,这将崩溃。

【讨论】:

  • 是的!谢谢,我会尽快批准,如果为零,我们如何捕捉它?
  • @EricD。也谢谢你,你的想法太好了,没问题。
  • @EricD。同意,应该关闭。
  • 如果 name 为 nil 我们如何捕捉?有什么想法吗?
猜你喜欢
  • 2015-01-07
  • 1970-01-01
  • 2019-06-15
  • 2015-12-19
  • 2022-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-11
相关资源
最近更新 更多