Я пытаюсь получить объект json из запроса внутри WKWebView
. Пока я могу получить только строку html из тела, но она обернута в некоторые теги (например, <pre>
). Как я могу сделать это, не используя третьи части библиотеки? А также получить тело непосредственно от ответа?
Мой код демонстрирует, что у меня есть сейчас, и не дает мне того, что мне нужно. Я использую методы делегата WKNavigationDelegate
и evaluateJavaScript
для получения внутреннего htmlText
тела
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!){
webView.evaluateJavaScript("document.body.innerHTML") { (anyObject, error) in
guard let htmlStr = anyObject as? String else {
return
}
let data: Data = htmlStr.data(using: .utf8)!
do {
let jsObj = try JSONSerialization.jsonObject(with: data, options: .init(rawValue: 0))
if let jsonObjDict = jsObj as? Dictionary<String, Any> {
let threeDSResponse = ThreeDSResponse(dict: jsonObjDict)
print(threeDSResponse)
}
} catch _ {
print("having trouble converting it to a dictionary")
}
}
}
Теперь я получаю htmlStr как
"{\" идентификатор \ ": 68324947, \" is_test \ "ложь \" Статус \ ": 2, \" status_description \ ": \" 055
- Неверная транзакция \ "}"
и хотите получить его напрямую как json (разобрать) из
{\ "идентификатор \": 68324947, \ "is_test \" ложь \ "Статус \": 2, \ "status_description \": \ "055
- Неверная транзакция \ "}
также я не могу использовать трехчастные библиотеки и должен делать как можно больше чистоты.