我有一个字典,我将其转换为字符串以将其存储在数据库中。
var Dictionary =
[
"Example 1" : "1",
"Example 2" : "2",
"Example 3" : "3"
]
我使用
Dictionary.description
获取字符串。
我可以完美地将它存储在数据库中,但是当我读回它时,显然它是一个字符串。
"[Example 2: 2, Example 3: 3, Example 1: 1]"
我想将它转换回来,我可以像
一样评估它Dictionary["Example 2"]
我该怎么做?
由于
答案 0 :(得分:6)
不能保证description
文本在SDK版本中保持稳定,因此我不会依赖它。
您最好的选择是使用JSON作为NSJSONSerialization的中间格式。从字典转换为JSON字符串并返回。
答案 1 :(得分:2)
我在字符串助手类中创建了一个静态函数,然后可以调用它。
static func convertStringToDictionary(json: String) -> [String: AnyObject]? {
if let data = json.dataUsingEncoding(NSUTF8StringEncoding) {
var error: NSError?
let json = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.allZeros, error: &error) as? [String: AnyObject]
if let error = error {
println(error)
}
return json
}
return nil
}
然后你就可以这样称呼它
if let dict = StringHelper.convertStringToDictionary(string) {
//do something with dict
}
答案 2 :(得分:0)
这正是我现在正在做的事情。考虑到@gregheo说“description.text不能保证在整个SKD版本中保持稳定”,description.text可能会在格式编写方面发生变化,所以依靠它是不明智的。
我相信这是做它的标准
let data = your dictionary
let thisJSON = try NSJSONSerialization.dataWithJSONObject(data, options: .PrettyPrinted)
let datastring:String = String(data: thisJSON, encoding: NSUTF8StringEncoding)!
您可以将数据字符串保存到coredata。