我將NSDictionary的字符串並將其存儲在SQLite數據庫,再從數據庫中檢索和使用字符串轉換爲NSDictionary中下面的兩種方法{這對下面的代碼中提到}。但是,如果我們將多個字典存儲在一個SQLite數據庫表中,則需要花費大量的時間來轉換這兩種方式{array to string &反之亦然}。有沒有解決方案可以在更短的時間內將完整的NSArray或完整的NSDictionary轉換爲字符串,反之亦然?斯威夫特的NSDictionary JSON數組轉換爲字符串轉換耗時
func jsonDictionary(jsonData:NSDictionary)-> String
{
var error : NSError?
let jsonData = try! NSJSONSerialization.dataWithJSONObject(jsonData, options: NSJSONWritingOptions.PrettyPrinted)
let jsonString = NSString(data: jsonData, encoding: NSUTF8StringEncoding)! as String
return jsonString
}
func convertStringToDictionary(text: String) -> NSDictionary {
var json=text
json = json.stringByReplacingOccurrencesOfString("\n", withString: "", options: NSStringCompareOptions.LiteralSearch, range: nil)
// json = json.stringByReplacingOccurrencesOfString(" ", withString: "", options: NSStringCompareOptions.LiteralSearch, range: nil)
print(json)
var jsonDictData=NSDictionary()
if let data = json.dataUsingEncoding(NSUTF8StringEncoding) {
do {
var jsonDict: NSDictionary? = try NSJSONSerialization.JSONObjectWithData(data, options: []) as? NSDictionary
jsonDictData=jsonDict?.mutableCopy()as! NSMutableDictionary
print(jsonDictData)
}
catch
{
}
}
return jsonDictData
}
'.stringByReplacingOccurrencesOfString(「\ n」...'你爲什麼這樣做?哦,對,你正在使用'.PrettyPrinted' ...然後不要使用它! PrettyPrinted' //此外,您還可以在JSON數據保存爲一個blob,而不是從字符串轉換爲/。 – Moritz
感謝埃裏克!我被迫使用「.stringByReplacingOccurencesOfString ......」因爲我得到「\ n。 。「而從NSDictionary轉換爲字符串。我也不知道你的意思是」數據作爲一個blob而不是轉換爲/從字符串嗎?「 –
你認爲你被迫但你錯了,編碼和解碼正確的方式和你*從來沒有*必須這樣做//我說的是保存你的JSON **數據**而不是保存它的字符串表示形式 – Moritz