【问题标题】:POST JSON with Swift使用 Swift 发布 JSON
【发布时间】:2015-11-17 11:07:52
【问题描述】:

我使用这个代码,

let username = usernameText.text
let pass = passTxt.text
let pass2 = pass2Txt.text

let myUrl = NSURL(string: "http://192.168.1.6/ff/jsonsignup.php");
let request = NSMutableURLRequest(URL:myUrl!);
request.HTTPMethod = "POST";
request.setValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type")
request.setValue("application/json", forHTTPHeaderField: "Accept")
let postString = "username=\(username)&password=\(pass)&c_password=\(pass2)";

request.HTTPBody = postString.dataUsingEncoding(NSUTF8StringEncoding);

let task = NSURLSession.sharedSession().dataTaskWithRequest(request) {
    data, response, error in

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

   print("response = \(response)")

    let responseString = NSString(data: data!, encoding: NSUTF8StringEncoding)
    print("responseString = \(responseString)")


           let myJSON = try!NSJSONSerialization.JSONObjectWithData(data!, options: .MutableContainers) as! NSDictionary

        if let parseJSON = myJSON as NSDictionary! {

        var firstNameValue = parseJSON["username"] as? String
        print("Username: \(firstNameValue)")
    }

}

task.resume()

响应字符串

Username: {"username":"Optional(\"ttttt\")"}

可选的额外添加短语

但是

我去了,因为我想被派去

{"username":"ttttt"}

不知道哪里出错了?

【问题讨论】:

  • 试试这个:print("Username: \(firstNameValue!)")

标签: ios json swift parsing post


【解决方案1】:

您获得了 Optional 关键字,因为当您从字典中获取任何数据时,它总是会给您一个 Optional。

Optional 表示它可能包含对象,也可能包含 nil。只是一种更安全的编程方式

使用 if let 语句打开可选的包装

   if let firstNameValue = parseJSON["username"] as? String
   {
      print("Username: \(firstNameValue)")
   }

【讨论】:

  • 记录到数据库时如下所示。我在想没有告诉的事情
猜你喜欢
  • 1970-01-01
  • 2023-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-25
  • 2016-07-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多