Using SwiftyJSON
how would I parse the following JSON array into a Swift [String]
?
{
\"array\": [\"one\", \"two\", \"three\"]
}
{
"myArray": ["one", "two", "three"]
}
Using SwiftyJSON, you can get an array of JSON objects with:
var jsonArr:[JSON] = JSON["myArray"].arrayValue
Functional programming then makes it easy for you to convert to a [String] using the 'map' function. SwiftyJson let's you cast string type with subscript '.string'
var stringArr:[String] = JSON["myArray"].arrayValue.map { $0.stringValue}
SwiftyJSON lets you extract a String?
using $0.string or a non optional String
using stringValue with a default empty String value if the type doesn't match.
If you want to be sure to have an array of String with non false positives, use :
var stringArray = self.json["array"].array?.flatMap({ $0.string })
or in Swift 4.1
var stringArray = self.json["array"].array?.compactMap({ $0.string })
You can also replace self.json["array"].array
by self.json["array"].arrayValue
to have a [String]
result instead of [String]?
.
Simply do this:
for stringInArray in json["array"]{
let value = stringInArray.1.stringValue
}
You have a Dictionary
which holds an Array
which holds String
s. When you access a value in the Dictionary
, it returns a simple Array
of String
s. You iterate it like you would any array.
for obj in json["array"] {
println(obj.stringValue)
}