【发布时间】:2016-04-26 08:54:11
【问题描述】:
我需要从多阶段 JSON 响应中获取值。
对于我的登录,我从我的服务器获得以下 JSON 数据:
{
"status": "...",
"payloadList": [
{
"type": "...",
"authToken": "...",
"user": {
"id": ...,
"firstName": "...",
...
}
}
]
}
为了获得 firstName 的值,我尝试了以下方法:
do {
let json = try NSJSONSerialization.JSONObjectWithData(data, options: []) as! [String: AnyObject]
if let payload = (json["payloadList"] as? [AnyObject]){
NSLog("Payload: %@", payload);
}
} catch let error as NSError {
print("Failed to load: \(error.localizedDescription)")
}
由于它是多级的,我将其转换为字符串:anyobject 而不是字典。
有效载荷现在看起来像这样:
payload: (
{
authToken = ...;
type = ...;
user = {
id = ...;
firstName = ...;
...
};
}
)
为了获得名字,我现在应该通过 anyobject。 不幸的是,这不起作用:
if let user = (payload["user"] as? [AnyObject]){
NSLog("user: %@", user);
}
是否有人知道如何通过 anyobject 从中获取名字,或者是否有人通过不使用 anyobject 从头开始有其他解决方案?
非常感谢!
【问题讨论】:
-
你应该使用 SwiftyJson 。
-
payloadList是字典数组 ([[String:AnyObject]]),user是payloadList的键和字典 ([String:AnyObject])