Я хочу извлечь строку JSON из HTML-документа "без" с помощью стороннего Framework.
Я пытаюсь создать iOS Framework, и я не хочу использовать сторонние Framework в нем.
Пример URL:
http://www.nicovideo.jp/watch/sm33786214
В этом html есть строка:
Мне нужно извлечь:
JSON_String_I_want_to извлечь
и преобразовать его в объект JSON.
С сторонним фреймворком "Kanna" это выглядит так:
if let doc = Kanna.HTML(html: html, encoding: String.Encoding.utf8) {
if let descNode = doc.css("#js-initial-watch-data[data-api-data]").first {
let dataApiData = descNode["data-api-data"]
if let data = dataApiData?.data(using: .utf8) {
if let json = try? JSON(data: data, options: JSONSerialization.ReadingOptions.mutableContainers) {
Я искал в Интернете похожий вопрос, но не смог применить его к своему делу: (Я должен признать, что я не совсем следую регулярному выражению)
if let html = String(data:data, encoding:.utf8) {
let pattern = "data-api-data=\"(.*?)\".*?>"
let regex = try! NSRegularExpression(pattern: pattern, options: .caseInsensitive)
let matches = regex.matches(in: html, options: [], range: NSMakeRange(0, html.count))
var results: [String] = []
matches.forEach { (match) -> () in
results.append( (html as NSString).substring(with: match.rangeAt(1)) )
}
if let stringJSON = results.first {
let d = stringJSON.data(using: String.Encoding.utf8)
if let json = try? JSONSerialization.jsonObject(with: d!, options: []) as? Any {
// it does not get here...
}
Кто-нибудь разбирается в html и конвертирует его в JSON?
Спасибо.