2017-02-03 1 views
0

Я хотел бы использовать JSON2HTML для анализа данных HTML из JSON и отображения его в UIWebView (с использованием Swift 3.0). Пожалуйста, дайте мне знать, как этого достичь. Заранее спасибо!Как анализировать данные HTML из JSON и отображать их в UIWebView (с использованием Swift 3.0)

Вот что я пытался:

let jsfile1 = try!String(contentsOfFile: Bundle.main.path(forResource: "json2html", ofType: "js")!) 

func loadJS() 
{ 
    var getData={} 
    var context = JSContext() 
    var valSwiftyJson:JSON = [:] 
    var test = context?.evaluateScript(jsfile1) 

    let testFunction = test?.objectForKeyedSubscript("json2html") 

    let urlString = //Have removed the URL string due to restrictions 
    Alamofire.request(urlString,encoding:JSONEncoding.default).responseJSON 
     { response in 
      if let alamoJson = response.result.value 
      { 
       let swiftyJson = JSON(data:response.data!) 
       valSwiftyJson = swiftyJson["FormInfo"]["Form"] 
       print(valSwiftyJson) 
      } 

    } 
    let result = testFunction?.call(withArguments: [getData,valSwiftyJson]) 
    webView.loadHTMLString((result?.toString())!, baseURL: nil) 
} 

Наконец, мне удалось решить проблему путем создания файла index.html (локально сохраняемый), и я передал библиотеку JSON2HTML внутри него. Затем я добавлял содержимое JSON (HTML внутри) динамически к нему каждый раз, когда мне нужно было преобразовать JSON в HTML. Наконец, я загружаю конечный index.html в UIWebView (он работал как шарм).

+0

вы можете показать нам свой код, который вы пробовали до сих пор, лучше доля это на jsfiddle или что-то – user3775217

+0

@ user3775217 Я добавил кодировку, как вы просили – user2842987

ответ

0

Вы говорите об этом library как JSON2HTML? Если это так, я не думаю, что есть библиотека для перевода элементов JSON в HTML в Swift.

Планируете ли вы загружать элементы JSON из внутреннего блока? Затем, поскольку в JSON2HTML есть оболочка node.js, я бы рекомендовал сделать перевод из JSON в HTML на том же сервере. Таким образом, вы бы просто скачать HTML скомпилированы данные с и делает его в UIWebView будет столь же легко, как эта строка кода (в Swift 3):

// html is the HTML data downloaded from your back-end 
webView.mainFrame.loadHTMLString(html, baseURL: nil) 
+0

Я получаю файл JSON в качестве ответа сервера, в котором будут встроены HTML-формы в самом JSON. Мне нужно найти выход для динамического отображения этих форм (и я планирую повторно использовать существующие теги HTML в моем проекте Xcode 8 - swift 3) с помощью UIWebView. Я хотел бы передать JS-файл JSON2HTML с помощью JavaScriptCore или мне нужно будет найти существующую структуру для Swift для выполнения этой задачи! – user2842987

+0

Да. Точная библиотека JSON2HTML, к которой вы добавили ссылку. – user2842987

Смежные вопросы