如何在以下代码中访问__nssingleobjectarrayi的值

时间:2017-03-30 08:37:56

标签: json swift xcode parsing alamofire

我解析了一个json并得到了一个JSON字典。

{
data =     (
            {
        bio = "<null>";
        bookmarked = 35;
        id = 22;
        "last_seen" =             {
            date = "2017-03-30 14:00:01";
            timezone = "Asia/Kolkata";
            "timezone_type" = 3;
        };
        name = "Alex";
        username = "Alex";
    }
);}

我正在尝试访问用户名和日期。 我试过了

let name = userData.value(forKeyPath: "data.username")
print(username)

通过打印这个,我得到一个带有用户名的__NSSingleObjectArrayI。

Optional(<__NSSingleObjectArrayI 0x6080000120b0>(
Alex
)
)

如何访问并在其他地方显示?基本上从字符串中提取“Alex”?

1 个答案:

答案 0 :(得分:1)

应用于包含字典的数组的

value(forKeyPath返回一个数组 - 如输出中所示。你需要得到数组的第一项

let names = userData.value(forKeyPath: "data.username")
if !names.isEmpty { print(names[0]) }

然而,获取名称的通常方法是

if let data = userDatavalue["data") as? [[String:Any]], !data.isEmpty,
   let username = data[0]["username"] as? String {
      print(username)
}