【问题标题】:Parsing a POST with JSON to display results to a user Swift 3.0使用 JSON 解析 POST 以向用户显示结果 Swift 3.0
【发布时间】:2017-07-04 22:42:31
【问题描述】:

我正在创建一个应用程序,在登录后用户将被带到一个选项卡栏控制器,在其中一个选项卡上我想显示具有来自 mySQL 数据库的数据的用户配置文件。截至目前,我要做的就是使用我的 PHP 进行 POST 获取 JSON 并将其显示给我自己。我想我可能会弄清楚如何从那里向用户显示数据。到目前为止,这是我的 profileViewController.swift 页面。我在 viewDidLoad 函数中有所有内容,因为我希望在单击页面时将所有内容预加载到页面上。我收到一些错误。我的一个错误 让 task = URLSession.shared.dataTask(with:request as URLRequest){ 行,并且该错误表示“从类型为'(,,_) throws -> ()' 的抛出函数到非抛出函数类型'(Data?,URLResponse?,Error?) 的无效转换-> 虚空。”我遇到的下一个错误是在我的“myJson”行中,它说“计算属性必须具有显式类型”

import UIKit

class profileViewController: UIViewController {



@IBOutlet weak var fNameLabel: UILabel!

@IBOutlet weak var lNameLabel: UILabel!

@IBOutlet weak var bDayLabel: UILabel!

@IBOutlet weak var skillsLabel: UILabel!

@IBOutlet weak var bioLabel: UILabel!




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

        let request = try NSMutableURLRequest(url: NSURL(string: phpurl)! as URL)
        request.httpMethod = "POST"


        //Getting the values from the text fields and creating the post parameter
        let postString = "email=\(globalVariable.loginEmail)&password=\(globalVariable.loginPassword)"


        //Adding the parameters to request body
        request.httpBody = postString.data(using: String.Encoding.utf8)

        //Creating a task to send the post request
        let task = URLSession.shared.dataTask(with: request as URLRequest){
            data, response, error in

            if error != nil{
                print("error is=\(error)")
                return;
            }

            let myJson = try JSONSerialization.jsonObject(with:data) as? [String: String]{

                print(myJson)
            }

        }
        task.resume()


    }

}



override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}


}

【问题讨论】:

  • 你的文本字段出口在哪里??
  • 它们只是空的文本字段,我将更改为从我的 json 获得的值
  • "email=(globalVariable.loginEmail)&password=(globalVariable.loginPassword)" 这里的电子邮件和密码是什么?
  • 用户登录时输入的内容
  • 您确定您在此处收到电子邮件和密码值吗?

标签: php ios json swift3


【解决方案1】:

swift 3.0 的语法应该如下所示

    let dataTask = URLSession.shared.dataTask(with: request as URLRequest) {data,response,error in

        if error != nil{
            return
        }
        do {
            let resultJson = try JSONSerialization.jsonObject(with: data!, options: []) as? [String:AnyObject]
            print("Result",resultJson!)
        } catch {
            print("Error -> \(error)")
        }
    }
    dataTask.resume()

【讨论】:

    猜你喜欢
    • 2022-01-21
    • 2021-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多