对 Swift 3.1 的子数组使用 SwiftyJSON

Using SwiftyJSON for subarray with Swift 3.1

我有一个json数据。我以前从未使用过 SwiftyJSON。我是第一次尝试。

我的json是这样的:

[
{
  "Id": 1,
  "Name": "A",
  "SubNames": [
  {
    "SubId": 1,
    "SubName": "A1"
  },
  {
    "SubId": 2,
    "SubName": "A2"
  }]
},
{
  "Id": 2,
  "Name": "B",
  "SubNames": [
  {
    "SubId": 1,
    "SubName": "B1"
  },
  {
    "SubId": 2,
    "SubName": "B2"
  }]
}
]

我可以处理名称并附加一个数组。但我无法处理 SubNames。我尝试了一些但不幸的是没有用。我想将 SubNames 附加到一个数组中。这个数组将是这样的:

[["A1","A2"],["B1","B2"]]

我使用这个代码:

let json = JSON(data: data!)
for (_,subJson):(String, JSON) in json {                
self.names.append(subJson["Name"].stringValue
}

试试这个来访问那些字段,你不应该data!在这里

guard let `data` = data else {
    //no data handling
    return 
}
let dataArray = JSON(data: data).arrayValue
var arrayOfAllSubnames: [[String]] = [[]]

for object in dataArray {
    var arrayOfSubnames: [String] = []
    if let subnames = object["SubNames"].array {
        for subname in subnames {
            //here you get `"SubId": 2, "SubName": "B2"` object
            let subnameValue = subname["SubName"].stringValue
            arrayOfSubnames.append(subnameValue)
        }
    }
    arrayOfAllSubnames.append(arrayOfSubnames)
}

Swift 3.0

1) 先声明子名数组

var subNameArray: [[String]] = []

2) 您可以按如下方式访问和存储此对象。

let json = JSON(data: data!).arrayValue

for item in json {

   var tempArray: [String] = []

   let name = item["Name"].stringValue

   for subNameItem in items["SubNames"].arrayValue {
     tempArray.append(subNameItem["SubName"].stringValue)
   } 
  subNameArray.append(tempArray)
}