[英]Unable to get the value of JSON - Swift
我试图从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
}
}
杰森解析
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的值。 它总是返回nil。 我如何获得价值。
另外,我设置了一个断点并尝试打印t1的值。 但是Xcode一直崩溃。 为什么?
我认为这里的主要问题只是快速访问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
这只是向您展示如何快速访问JSON对象。 当然,您可以根据需要进行更改,以删除不需要的“可选链接”。
为了在Swift中轻松进行JSON操作,您可以尝试使用这个小库。 看起来很简单,您可以执行以下操作:
var dictionary: [String: AnyObject]!
if let json = NKJSON.parse(yourNSDataObject) {
dictionary <> json[NKJSON.rootKey]
}
首先确认您得到的响应是json格式还是字符串格式。 对于json解析,您可以使用swifty json pod
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.