簡體   English   中英

如何在Swift中將JSON字符串作為參數傳遞

[英]How to pass json string as parameter in swift

如何將json作為參數字符串傳遞。 我已經嘗試通過以下方式傳遞json,但它會引發類似AuthenticateUser: Invalid JSON primitive錯誤AuthenticateUser: Invalid JSON primitive

let jsonString = "{\"user\":\"usr\",\"password\":\"pass\"}"

        var urlStr = "http://testserver/AuthenticateUser?data=\(jsonString)"


        var url = NSURL(string: urlStr)
        let request = NSMutableURLRequest(URL: url!)
        request.URL = url
        request.HTTPMethod = "POST"
        request.addValue("application/xml", forHTTPHeaderField: "Content-Type")
        request.addValue("application/xml", forHTTPHeaderField: "Accept")

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

                var error: NSError?
                if data != nil {
                    var reply = NSString(data: data!, encoding: NSUTF8StringEncoding)
                    println("reply >> \(reply)")
                }
        }
        task.resume()

請求初始化后添加以下行:

request.HTTPBody = NSJSONSerialization.dataWithJSONObject(jsonString, options: nil, error: &err)

將這些行更新為json格式:

request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("application/json", forHTTPHeaderField: "Accept")

參考:

使用Swift和API進行發布

http://jamesonquave.com/blog/making-a-post-request-in-swift/

我帶給您答案,將json參數作為字符串傳遞給URL。

    var jsonString = "{\"user\":\"usr\",\"password\":\"pass\"}"
    if let data = jsonString.dataUsingEncoding(NSUTF8StringEncoding)    
    {
      var error: NSError?
      var json = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.allZeros, error: &error) as? NSDictionary
      if error != nil 
      {
        println(error)
      }
      else
      {
        println(json)
      }
      var strUser = json?.valueForKey("user") as String
      var strPassword = json?.valueForKey("password") as String

      println(strUser)
      println(strPassword)

      var url = "http://testserver/AuthenticateUser?data="
      var urlUserParameter = "user="
      var urlPasswordParameter = "&password="
      var appendString = "\(url)\(urlUserParameter)\(strUser)\(urlPasswordParameter)\(strPassword)"
               //OR
      var appendStringOne = url + urlUserParameter + strUser + urlPasswordParameter + strPassword

      println(appendString)
      println(appendStringOne)

    }

說明

  I converted JSON string to NSDictionary.
  Then i get value using key
  Finally i append all these string and now we have URL with parameters.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM