【问题标题】:Map SwiftyJSON to array将 SwiftyJSON 映射到数组
【发布时间】:2016-01-27 03:46:57
【问题描述】:
let json = JSON(response.result.value!)

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

json.array 返回一个包含一百个JSONs 的数组。在调用map 之后,我最终得到了一个Thing

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

【问题讨论】:

    标签: swift swifty-json


    【解决方案1】:

    因为json.array返回[JSON]?,而不是[JSON]

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

    您需要致电:

    json.array?.map ...

    【讨论】:

    • 很好的解释,但不如 Eric D 的全面。 ;)
    【解决方案2】:

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

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

    可选:

    json.array
    

    非可选:

    json.arrayValue
    

    不过要小心:如果您使用具有 nil 值的非可选 getter,它将崩溃。如果该值可以为 nil,则最好使用可选的 getter 并使用 if let(可选绑定)或任何其他已知技术安全地展开:可选链接、nil 合并等。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-23
      • 2020-01-18
      • 2011-11-20
      • 1970-01-01
      • 2021-04-18
      • 2016-01-13
      • 2018-12-22
      • 2016-02-12
      相关资源
      最近更新 更多