我似乎无法解析以下json:
["data": {
companies = (
);
"login_status" = success;
"rs_customer" = {
id = "<null>";
name = "<null>";
status = "<null>";
};
user = {
email = "email@email.com";
id = 0;
lastlogin = "06/14/16 12:44 am";
name = "Jayson Tamayo";
password = mypassword;
phone = "112345";
};
}, "status": success]
我通过以下方式检索JSON:
HTTPGetJSON("http://myurl.com") {
(data: Dictionary<String, AnyObject>, error: String?) -> Void in
if error != nil {
print(error)
} else {
print(data)
let status = data["status"] as? String
print(status)
}
}
当我打印&#34;状态&#34;有用。但是当我尝试使用数据[&#34; name&#34;]时,我得到了零。我也尝试了数据[&#34;数据&#34;] [&#34;名称&#34;]但我也没有。
答案 0 :(得分:0)
您的主要对象是字典。
在&#34;数据&#34;关键,有几个值:&#34;公司&#34;是一个数组,&#34; rs_customer&#34;是字典,状态是字符串和&#34;用户&#34;是一本字典。
所以,为了得到用户,如果data
是我们在问题中看到的对象,你只需要转换为正确的类型,如下所示:
if let content = data["data"] as? [String:AnyObject] {
if let user = content["user"] as? [String:AnyObject] {
if let name = user["name"] as? String {
print(name)
}
}
}
您还可以链接展开以获得更简单的代码:
if let content = data["data"] as? [String:AnyObject],
user = content["user"] as? [String:AnyObject],
name = user["name"] as? String {
print(name)
}