追加元素形成 JSON 对多维数组的响应

Append elements form JSON response to multidimensional array

我正在使用 Alamofire 和 SwiftyJSON。

代码:

var array = Array<Array<String>>()

Alamofire.request(.GET, url, parameters: ["postType": "live"], encoding: ParameterEncoding.URL).responseJSON { (_, _, result) in
        switch result {

            case .Success(let data):

                let json = JSON(data)

                for(_,subJSON):(String, JSON) in json["Info"] {

                    let Tag = subJSON["Tag"].string!
                    let Location = subJSON["Location"].string!

                    array.append(Array(count: 4, repeatedValue: concertTag))

                }

            case .Failure(_, let error):

                print("Request failed with error: \(error)")
        }
    }

我想创建一个多维数组。并在将数组传递给 TableView 后向其添加 JSON 变量。

所以基本上我需要 "array" 是这样的:

[[Tag1; Location1],[Tag2, Location2], .... ]

我该怎么做?有任何想法吗?

谢谢

你只需要更换

array.append(Array(count: 4, repeatedValue: concertTag))

array.append([Tag, Location])

你会像这样取回数据,例如:

for arr in array {
    print("tag: " + arr[0])
    print("loc: " + arr[1])
}

但我建议另一种方法:使用元组。

首先让我们创建一个类型结果,因为它很方便:

typealias TagAndLocation = (tag: String, location: String)

然后准备一个空的结果数组:

var resultTuples = [TagAndLocation]()

在循环中填充元组数组:

for (_, subJSON) in json {
    let Tag = subJSON["Tag"].string!
    let Location = subJSON["Location"].string!

    let tagloc = (tag: Tag, location: Location)
    resultTuples.append(tagloc)
}

然后您可以通过两种方式访问​​您的数据:

for (tag, loc) in resultTuples {
    print("tag: " + tag)
    print("loc: " + loc)
}

for result in resultTuples {
    print("tag: " + result.tag)
    print("loc: " + result.location)
}

注意:您的变量名称应以小写字母开头。以大写字母开头通常表示 类、类型、协议等。