arrays - 在 Swift 中将 JSON 嵌套到数组

标签 arrays json swift

已经有帖子在谈论这个,但我仍然无法弄清楚我的问题。

我正在访问我的数据库并将响应转换为 JSON 对象 - 这部分工作正常。这是它的代码。 joArray 现在有了我需要的数据。

//Convert data to json object
let joArray : NSArray
do {
    joArray = try JSONSerialization.jsonObject(with: data, options: []) as! NSArray
}
catch  {
    print(responseString)
    print("error trying to convert data to JSON")
    return
 }

如果我打印出 joArray 。 . .

print(joArray)

. . .这就是我得到的。

(
        {
        FirstName = Bob;
    },
        {
        FirstName = Bill;
    }
)

我如何将这些数据放入一个 swift 数组中,使其看起来像这样?

let FirstNameArray = ["Bob", "Bill"]

FirstName 将始终处于相同位置,但会有不同数量的用户(Bob、Bill、Mary 等)。

最佳答案

如果您改用原生 Swift 数组,您的生活会更轻松。因此,首先更改您的数组定义:

let joArray: [[String: Any]]
do {
  joArray = try JSONSerialization.jsonObject(with: data, options: []) as! [[String: Any]]
} catch {
  // etc...
}

现在,构建所需的数组很简单:

let FirstNameArray = swiftArray.flatMap { $0["FirstName"] }

你应该使用 flatMap , 而不是 map ,因为给定的数组项可能没有名为 "FirstName" 的属性.

关于arrays - 在 Swift 中将 JSON 嵌套到数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40980328/

相关文章:

ios - 如何在 iOS 应用程序和今日 View 扩展之间共享数据

ios - UIScrollView 页面宽度不等于 self.view 宽度

c++ - 多数元素-数组的一部分

检查两个 char 数组元素是否相同 c

c# - 如何在 JSON.NET 中使用 List<T> 属性进行序列化期间将 null JSON 属性默认为空数组?

javascript - 如何制作自动运行的Chrome扩展程序?

c# - 使用 Utf8Json 库序列化时排除空字段?

c++ - 基于用户输入的数组大小

SQL Server SELECT 到 JSON 函数

ios - Swift:数据库更新后 View Controller 崩溃