안녕하세요.
swift초보 개발자 입니다.
현재 mysqlite에서 저장된 값들을 웹페이지에 뿌려주고 있는작업을 진행중 입니다.
json object형식으로 Array에담아 String으로 변환한 후 전달해주려고 하는데
envaluteJavasScript에서 에러가 찍혀 해결해보고자 이곳저곳 검색하며 방법을 찾다가
도저히 답이 안나와서 올리게 되었습니다.
조언부탁드리겠습니다.
아래는 소스코드입니다.
struct PushValue : Codable {
var category : String
var title : String
var content : String
var push_date : String
}
let encoder = JSONEncoder()
encoder.outputFormatting = .prettyPrinted
var all_push_list : Array<String> = []
//traversing through all the records
while(sqlite3_step(stmt) == SQLITE_ROW){
//let sq = sqlite3_column_int(stmt, 0)
let category = String(cString: sqlite3_column_text(stmt, 0))
let title = String(cString: sqlite3_column_text(stmt, 1))
let content = String(cString: sqlite3_column_text(stmt, 2))
let push_date = String(cString: sqlite3_column_text(stmt, 3))
//adding values to list
let pushValues = PushValue(category: "\(category)", title: "\(title)", content: "\(content)", push_date: "\(push_date)")
let jsonData = try? encoder.encode(pushValues)
if let jsonData = jsonData,let jsonString = String(data: jsonData, encoding: .utf8){
print(jsonString)
all_push_list.append(jsonString)
}
}
let joinedStr = all_push_list.joined()
print("all_push_list : \(joinedStr)")
self.webView.evaluateJavaScript("push_list('\(joinedStr)');", completionHandler: { result, error in
if let anError = error{
print("errrrrr \(anError)")
}
print("javascript result \(result)")
})
에러로그입니다..
errrrrr Error Domain=WKErrorDomain Code=4 "A JavaScript exception occurred" UserInfo={WKJavaScriptExceptionLineNumber=100, WKJavaScriptExceptionMessage=SyntaxError: JSON Parse error: Expected '}', WKJavaScriptExceptionColumnNumber=30, WKJavaScriptExceptionSourceURL NSLocalizedDescription=A JavaScript exception occurred}
javascript result nil