我试图从json响应中获取“种子”的值。但我没有了。
Json回复:
{
"response": {
"params": {
"rows": "20",
"defType": "abc",
"seed": "381786611"
}
}
}
Swift Parsing:
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 Parsing
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继续崩溃。为什么?
答案 0 :(得分:0)
我认为这里的主要问题只是在swift中访问JSON对象。
var error: NSError?
let jsonDict = NSJSONSerialization.JSONObjectWithData(jsonData, options: nil, error: &error) as NSDictionary
let resp = jsonDict["response"] as? NSDictionary
let params = resp?["params"]?["seed"]
let seed = params!! as NSString
这只是为了向您展示如何在swift中访问JSON对象。您可以根据需要更改它,以删除不需要的可选链接。
答案 1 :(得分:0)
为了在Swift中轻松进行JSON操作,您可以尝试使用this小库。看起来很简单,你可以这样做:
var dictionary: [String: AnyObject]!
if let json = NKJSON.parse(yourNSDataObject) {
dictionary <> json[NKJSON.rootKey]
}
答案 2 :(得分:-1)
首先确认您获得的响应是json格式或字符串格式。 对于json解析,您可以使用swifty json pod