快速将HTML字符串解析为JSON

时间:2018-12-07 11:19:09

标签: javascript html ios swift

我正在使用javascript使用WKWebView的HTML显示字符串

在我的View Controller中调用Javascript函数

myWebView.evaluateJavaScript("customMessageWithDictionary('\(self.jsonString)','\(strTestType)')") {
            (id, error) in
            print(error ?? "")
        }

在HTML文件中

function customMessageWithDictionary(nameDetails,testType1) {

        nameDetails = nameDetails.replace(/\\/g, '');
        questionList = $.parseJSON(nameDetails);
        var iterator=0
        for (iterator = 0; iterator < questionList.length; iterator++)
            questionList[iterator].UserGivenAnswerId= null;

        questionObj = questionList[positionObj];
        testType=testType1;

        loadQuestions(true);
    }

如果 jsonString 中有HTML标记,请提取错误,并且我的Javascript无法运行。因此WKWebview不会显示内容。

如果HTML标记位于我的jsonString中,请给我解决方案,因此请使用HTML字符串加载javascript函数。

2 个答案:

答案 0 :(得分:1)

 if let theJSONData = try?  JSONSerialization.data( withJSONObject: self.aryOfQuestionList,options: .prettyPrinted ),

let theJSONText = String(data: theJSONData,encoding: String.Encoding.ascii) 
{
   print("JSON string = \n\(theJSONText)")

   self.jsonString = (theJSONText as AnyObject) as! String
}

let regex = try! NSRegularExpression(pattern: "(?<=<\\w{1,40})\\s[^>]+(?=>)", options: .caseInsensitive)
let range = NSMakeRange(0, self.jsonString.count)
let htmlWithoutInlineAttributes = regex.stringByReplacingMatches(in: self.jsonString, options: [], range: range, withTemplate: "")

 print(htmlWithoutInlineAttributes)

答案 1 :(得分:0)

要检索应用程序资源的URL,应使用NSBundle类的URLForResource方法。

雨燕2

let url = NSBundle.mainBundle().URLForResource("privacy", withExtension:"html") 

雨燕3

let url = Bundle.main.url(forResource: "privacy", withExtension: "html")