Swift-如何使用可编码的JSONDecode嵌套数组的JSON其中没有键或名称的数组按给出的示例

问题描述

我是Swift和Codable方法的新手。我必须通过Swift项目中的 Codable 方法解码以下JSON结构。

[
    [
        [
            {
                "id": "58","parentCat": "7","catFirstTitle": "freedom to"
             },{
                "id": "40","parentCat": "5","catFirstTitle": "freedom to"
             }
        ],[
            {
                "id": "58","catFirstTitle": "freedom to"
             }
        ]
    ],[
        [
            {
                "id": "58","catFirstTitle": "freedom to"
             }
        ]
    ]
]

我找不到没有键名的多级jsonArray解码的任何示例。任何指针或示例都会对我有很大帮助。

解决方法

您可以创建一个简单的结构:

struct Item: Codable {
    let id: String
    let parentCat: String
    let catFirstTitle: String
}

并解码为嵌套数组对象:

let result = try JSONDecoder().decode([[[Item]]].self,from: jsonData)

请注意,结果将为[[[Item]]]类型。

您可能还希望将其展平:

let flattened = result.flatMap { $0 }.flatMap { $0 }