Swift - 解析包含URL的字符串

ava*_*ava 4 string ios swift

如何解析这个字符串:

http://www.ha***ay.ir/pa***nt/result_false.php?error=Canceled%20By%20User

我尝试使用下面给出的代码将给定的字符串转换为字典.但我得到了这个错误:

无法读取数据,因为格式不正确.

这是我的代码:

 func webViewDidFinishLoad(_ webView: UIWebView) {

            print("finish loading")

            let yourTargetUrl = webView.request?.url?.absoluteString

            print(yourTargetUrl!)

            let parse = convertToDictionary(text: yourTargetUrl!)

        }

        func convertToDictionary(text: String) -> [String: Any]? {
            if let data = text.data(using: .utf8) {
                do {
                    return try JSONSerialization.jsonObject(with: data, options: []) as? [String: Any]
                } catch {
                    print(error.localizedDescription)
                }
            }
            return nil
        }
Run Code Online (Sandbox Code Playgroud)

vad*_*ian 28

query可以使用解析URL 的一部分URLComponents

let yourTargetUrl = URL(string:"http://www.foo.ir/baz/result_false.php?error=Canceled%20By%20User")!

var dict = [String:String]()
let components = URLComponents(url: yourTargetUrl, resolvingAgainstBaseURL: false)!
if let queryItems = components.queryItems {
    for item in queryItems {
        dict[item.name] = item.value!
    }
}
print(dict)
Run Code Online (Sandbox Code Playgroud)