簡體   English   中英

Swift - 解析包含 URL 的字符串

[英]Swift - Parse a string which contains a URL

如何解析這個字符串:

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
}

URL 的query部分可以用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)

暫無
暫無

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

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