Подтвердить что ты не робот

Как разбирать строковый массив с SwiftyJSON?

Используя SwiftyJSON, как бы я проанализировал следующий массив JSON в Swift [String]?

{
    "array": ["one", "two", "three"]
}

Я пробовал этот код, но для меня это не работает:

for (index: String, obj: JSON) in json["array"] {
        println(obj.stringValue)
    }

Каким будет лучший способ справиться с этим? Спасибо.

4b9b3361

Ответ 1

{
    "myArray": ["one", "two", "three"]
}

Используя SwiftyJSON, вы можете получить массив объектов JSON с помощью:

var jsonArr:[JSON] = JSON["myArray"].arrayValue

Функциональное программирование упрощает преобразование в [String] с помощью функции "map". SwiftyJson позволяет вам использовать строковый тип с индексом '.string'

var stringArr:[String] = JSON["myArray"].arrayValue.map { $0.stringValue}

Ответ 2

Просто выполните следующее:

for stringInArray in json["array"]{

    let value = stringInArray.1.stringValue
}

Ответ 3

У вас есть Dictionary, который содержит Array, который содержит String s. Когда вы получаете доступ к значению в Dictionary, он возвращает простой Array из String s. Вы повторяете его так же, как и любой массив.

for obj in json["array"] {
    println(obj.stringValue)
}

Ответ 4

Что вам нужно сделать, это first filter все не строки и , а затем лить в строку с картой.

var stringArray = self.json["array"].array?.filter({ $0.string != nil }).map({ $0.string! })

Если вы не отфильтровываете сначала, ваше приложение выйдет из строя, если у вас есть что-то еще, кроме String, которое не то, что вы хотите, особенно когда данные поступают из другого источника.