【问题标题】:How to cast JSON array to array with SwiftyJSON如何使用 SwiftyJSON 将 JSON 数组转换为数组
【发布时间】:2016-06-02 05:11:55
【问题描述】:

我有一个 JSON 数组 var array: [JSON] = [],我想将其转换为“常规”数组,以便我可以执行一些过滤和其他数据操作。这样做的建议方法是什么?

我试过let filteredArray = array.arrayValue.filter {$0["submission_id"] as! Int == 27},但我被抛出了这个错误

“[JSON]”类型的值没有成员“arrayValue”

【问题讨论】:

  • 你使用什么库来解析 JSON?
  • 我正在使用 swiftyjson 和 alamofire
  • 如果类型是[JSON],那么这已经是一个“常规数组”。 array.filter 应该可以工作。
  • 我也尝试过,但我会得到 从“JSON”转换为不相关类型“Int”的结果总是失败
  • $0["submission_id"].double 应该给你一个双倍的,这很接近......

标签: arrays json swift swifty-json


【解决方案1】:

一个 SwiftyJSON 对象有一个索引和内容。

要过滤 SwiftyJSON 对象,您可以使用 filter,但您必须过滤元组的第二部分,即内容。

另外,如果你想获取 Int 值,你应该使用 SwiftyJSON 生成的.int 属性。

例子:

let filtered = json.filter { $0.1["submission_id"].int == 27 }

但您也可以提取 SwiftyJSON 对象的内容以获取 Swift 数组,使用.arrayObject

然后你会像这样过滤:

if let array = json.arrayObject {
    let filtered = array.filter { $0["submission_id"] as? Int == 27 }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-16
    • 1970-01-01
    • 2012-05-24
    相关资源
    最近更新 更多