将 SwiftyJSON 映射到数组

Map SwiftyJSON to array

let json = JSON(response.result.value!)

let things = json.array.map { jsonThing in          
   Thing()                    
}!

json.array returns 一百个 JSON 的数组。在调用 map 之后,我得到一个 Thing.

为什么我没有新的 Thing 数组?

因为json.arrayreturns[JSON]?,而不是[JSON]

因此您在 Optional<[JSON]> 的单个实例上调用了 .map 而不是您期望的 Array<JSON>

您需要致电:

json.array?.map ...

SwiftyJSON 有两种 getters:可选的和非可选的。

非可选 getter 具有“...Value”名称语法。

可选:

json.array

非可选:

json.arrayValue

不过要小心:如果你使用非可选 getters 和 nil 值,它会崩溃。如果该值可以为 nil,则最好使用可选 getter 并使用 if let(可选绑定)或任何其他已知技术安全解包:可选链接、nil 合并等