目標是通過將Swift對象轉換爲JSON對象,然後將JSON對象轉換爲JSON字符串,然後將其傳遞並解碼另一邊。Swift:如何抑制特殊字符的解釋並提供字符串文字
問題是生成有效的JSON字符串。
換行符必須在JSON字符串中轉義,但Swift將轉義轉義字符串中的特殊字符,而不是將字符串視爲文字。
例如:
let a = "foobar\nhello\nworld"
let escapedString = a.replacingOccurrences(of: "\n", with: "\\n")
print(escapedString)
什麼獲取打印是foobar\nhello\nworld
而不是所希望foobar\\nhello\\nworld
。
你如何看待Swift將字符串視爲文字而不解釋特殊字符?
UPDATE
作爲OOPer所指出的,使用debugPrint
示出保持完整\\n
字符。
然而,當與在evaluateJavaScript
WKWebView
配對時,\\n
字符變成\n
,這是根問題。例如:
let script = "\(callback)(\'\(escapedString)\')"
webView!.evaluateJavaScript(script) { (object: Any?, error: Error?) -> Void in
print("Done invoking \(callback)")
}
這是一個很好的點,所以也許應該張貼更多的代碼,其中evaluateJavaScript.'的'內使用時的\\ n趨向走 – Crashalot
更新的問題,會愛你的根源問題的反饋 – Crashalot