我正在尝试使用我从数据库获取的字符串作为使用swift的JSON.我试图将字符串转换为数据对象然后使用JSONSerialization,但结果总是回来零.
以下是我的代码示例:
var string = "{Param1: \"Value\", Param2: \"value2\", Param3: \"value3\"}"
let data = (reducedOptionsString as NSString).dataUsingEncoding(NSUTF8StringEncoding)
if let d = data{
var err : NSErrorPointer = nil
let parsedObject: AnyObject? = NSJSONSerialization.JSONObjectWithData(d, options: NSJSONReadingOptions.MutableLeaves, error: err)
if let dict = parsedObject as? Dictionary<String, AnyObject>{
...
}
}
Run Code Online (Sandbox Code Playgroud)
由于某种原因,parsedObject总是以nil的形式返回
有谁知道我可能缺少什么来将我的字符串数据转换为我可以使用的JSON对象?
你的json无效,键也必须用引号括起来.
"{ \"Param1\": \"Value\", \"Param2\": \"value2\", \"Param3\": \"value3\"}"
Run Code Online (Sandbox Code Playgroud)
另外,正如@zaph指出的那样,它是string你要转换为数据的变量.
var string = "{\"Param1\": \"Value\", \"Param2\": \"value2\", \"Param3\": \"value3\"}"
if let data = string.dataUsingEncoding(NSUTF8StringEncoding){
var err : NSErrorPointer = nil
let parsedObject = NSJSONSerialization.JSONObjectWithData(
data!,
options: NSJSONReadingOptions.MutableLeaves,
error: err) as? Dictionary<String, AnyObject>
if (parsedObject != nil) {
...
}
else {
if (err != nil) {
println("Error: \(err)")
}
else {
println("Error: unexpected error parsing json string")
}
}
}
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用SwiftyJSON,一个非常受欢迎的库来处理swift上的json,这可以让您的生活更轻松一些.
| 归档时间: |
|
| 查看次数: |
6920 次 |
| 最近记录: |