如何从 JSON 内的数组解析字符串数据 Swift 中的另一个数组 4

How to parse a string data from array inside JSON another array in Swift 4

我必须将字符串数据显示到 tableView 中。

{
"success": [
    [
        "An Ad with order id 2563 at location DLF, Delhi has been approved | 20 hours before|Shashank Tiwari"
    ],
    [
        "An Ad with order id 2539 at location V3S Mall has been approved | 1 week before|Shashank Tiwari"
    ],
    [
        "An Ad with order id 2515 at location Pacific Mall has been approved | 1 week before|Shashank Tiwari"
    ],
    [
        "An Ad with order id 2500 at location Ambience Mall has been rejected | 1 week before|Shashank Tiwari"
    ],
    [
        "An Ad with order id 2499 at location Vience Mall has been approved | 1 week before|Shashank Tiwari"
    ],
    [
        "An Ad with order id 2480 at location DLF, Delhi has been approved | 2 weeks before|Shashank Tiwari"
    ]
}

所以我正在如下解析数据,但无法将数据附加到 arrData 数组。

           let json = try JSON(data:data
           let result = json["success"]                                           

                 print(result)


                    for arr in result.arrayValue {

                        self.arrData.compactMap{ [=13=] as? NSArray}
            }

如果你想展平数组那么compactMap是错误的API。

使用reduce

let result = json["success"]
let array = (result.arrayObject as! [[String]]).reduce([], +)
self.arrData.append(contentsOf: array)
  • arrayObject returns [Any]?, 必须向下转型为真实类型 [[String]]
  • reduce将二维数组转换为一维数组。

你可以用另一种方式,比如

let result = json["success"]
if let arr = result.arrayObject as? [[String]] {
    let array = arr.map { [=10=].first! }
    self.arrData.append(contentsOf: array)
}