2016-12-19 18 views
0

スウィフト - URLを含む文字列を解析し、この文字列を解析することができますどのように

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

指定された文字列を辞書に変換するために、以下のコードを使用してみました。しかし、私はこのエラーがあります:

正しい形式でないため、データを読み取れませんでした。

これは私のコードです:URLの

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 
     } 
+1

あなたが '辞書に文字列を変換' とはどういう意味ですかで解析することができますか?キーと値は何が必要ですか? –

+1

この文字列を逆シリアル化することはできません。それはまったくJSONではありません。 – vadian

+0

@MaxPevsnerこの部分を変換したいerror =キー値ペアに%20By%20Userをキャンセルしました – ava

答えて

8

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) 
+0

ありがとう、this really helpfull – ava

+0

URLを解析する際に問題が発生しました。 –