【发布时间】:2014-11-11 09:10:42
【问题描述】:
我试图从 json 响应中获取“种子”的值。但我得到了零。
Json 响应:
{
"response": {
"params": {
"rows": "20",
"defType": "abc",
"seed": "381786611"
}
}
}
快速解析:
if let responseHeader:AnyObject = object?["response"] as? NSDictionary {
if let t = (responseHeader["params"] as? NSDictionary){
let t1 = t["seed"] as? String
println("result is \(t1)") // This returns nil
}
}
Json 解析
func processJsonToDictionary(object:AnyObject?) -> AnyObject?{
if object != nil {
if let data: AnyObject = object {
var parseError: NSError?
var jsonResult = NSJSONSerialization.JSONObjectWithData(object as NSData!, options: NSJSONReadingOptions.MutableContainers, error: &parseError) as? NSDictionary
if(parseError != nil){
return parseError
}
else{
return jsonResult
}
}
}
return nil
}
我无法获得 t1 的值。它总是返回零。 我怎样才能获得价值。
另外,我设置了一个断点并尝试打印 t1 的值。但是 Xcode 不断崩溃。为什么?
【问题讨论】:
-
我怀疑“Xcode 不断崩溃”。是不是你的代码一直在崩溃?
-
我试图在控制台(po t1)中打印 t1 的值。 Xcode 退出并在对话框中抛出错误消息,带有两个选项(确定和重新打开)
-
同样的代码对我有用,你是如何解析 JSON 的?
-
请在此处检查您的 JSON 结果,然后继续。 jsonviewer.stack.hu 和 jsoneditoronline.org 会帮助你。
-
我将 t 的值作为 NSDictionary(包含 3 个键值对)。但是 t1 返回 nil