Swift Escape Character'\'被添加到字符串中

时间:2017-02-24 15:53:04

标签: swift string

我需要从Swift 3.0进行API调用,即SailsJS平台。

我需要制作以下蓝色打印路线。

网址:https://[myapiCall]/[model]?where= {“approvalStatus”:{“not”:“已批准”}}

这与Browser / Postman完美配合

在Swift中,我按如下方式创建了这个url字符串:

var URL:String = "https://<myapiCall>/<model>?where={\"approvalStatus\":{\"not\":\"Approved\"}}"

调用的结果代码包括转义字符。

我尝试过许多替代方法。

  1. 没有转义字符,它会破坏字符串。
  2. 尝试用空字符串替换最终URL中的转义字符'\',但要替换我们需要找到\作为“\”。代码开始寻找\而不是\ -_-

1 个答案:

答案 0 :(得分:1)

您没有正确编码。这是来自Swift 3游乐场的一些工作代码:

if var components = URLComponents(string: "https://server/model") {
    var query = [ "approvalStatus" : [ "not" : "Approved" ] ]

    var serialized = try! JSONSerialization.data(withJSONObject: query, options: .init(rawValue: 0))
    var jsonStr = String(data: serialized, encoding: .utf8)
    let queryItem = URLQueryItem(name: "where", value: jsonStr)
    components.queryItems = [queryItem]

    print (components.url!)
}

这会打印"https://server/model?where=%7B%22approvalStatus%22:%7B%22not%22:%22Approved%22%7D%7D"