swift - 跳转到 swift - json 字典数组的问题

标签 swift dictionary for-loop

json进来,是一个字典数组:

let dict = try JSONSerialization.dictionary(data: data, options: .allowFragments)


(key: contact_383348580, value: {
    email = "r@c.com";
    "first_name" = Jon;
    "last_name" = B;
    tags = "";
})
(key: contact_445575065, value: {
    email = "n.w@s.com";
    "first_name" = "<null>";
    "last_name" = "<null>";
    tags = "";
})

尝试将其映射到 User 类(然后按名字对 alpha 进行排序(?)),然后填充表格 View 。

我都是 obj-c,但尝试通过 swift 在我的 objc 项目中添加此功能,以逐步提高我的技能。但是谷歌搜索返回了所有不同的方式和不同的快速版本,这些版本似乎不起作用(或者坦率地说对我来说无论如何都是有意义的,但我会到达那里)。

目前我可以创建用户,但名称为空。

for objects in dict {
    print(objects)

    let first = dict["first_name"] as? String
    let last = dict["last_name"] as? String
    let name = "\(first ?? "asas") \(last ?? "sdasd")"
    let object = User(username: name)
    contacts.append(object!)
}
print(" contacts \(contacts)")

最佳答案

你说你有一个字典数组,如果这是正确的,那么你就用变量的命名欺骗了自己,因为 dict 是一个数组,而 objects 是一个字典。我假设你的代码无法编译?

这个怎么样

let array = try JSONSerialization.dictionary(data: data, options: .allowFragments)

for dict in array {
    let first = dict["first_name"] as? String ?? "asas"
    let last = dict["last_name"] as? String ?? "sdasd"
    let name = "\(first) \(last)"
    let object = User(username: name)
    contacts.append(object)
} 

关于swift - 跳转到 swift - json 字典数组的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55066862/

相关文章:

swift - 定时器如何在 Swift 中工作?

ios - CLLocation Manager 检查 requestAlwaysAuthorization,如果不接受则退出应用程序

c# - 将对象添加到 LINQ 中的字典值?

python - 如何从有序邻接表构建递归字典树

linux - 在 shell 脚本中为 for 循环中的变量赋值

iOS Charts Swift 条形图超出视野

ios - 在 Swift 2 中检测物理接触

javascript - 如何在javascript中动态创建一个包含值数组的 map

c - 在 for 循环中添加数字

Python 'for word in word' 循环