使用 SwiftyJSON
,我该如何将以下 JSON 数组解析为 Swift [String]
?
{
"array": ["one", "two", "three"]
}
我尝试过这段代码,但是它对我没有用:
for (index: String, obj: JSON) in json["array"] {
println(obj.stringValue)
}
如何处理这个情况最好?谢谢。
{
"myArray": ["one", "two", "three"]
}
使用SwiftyJSON,您可以得到一个包含以下内容的JSON对象数组:
var jsonArr:[JSON] = JSON["myArray"].arrayValue
函数式编程使您可以轻松使用“map”函数将其转换为[String]。SwiftyJson允许您使用下标'.string'将字符串类型强制转换。
var stringArr:[String] = JSON["myArray"].arrayValue.map { $0.stringValue}
String?
或使用具有默认空字符串值的stringValue的非可选String
,如果类型不匹配。var stringArray = self.json ["array"] .array?.flatMap({ $ 0.string })
或在Swift 4.1中
var stringArray = self.json ["array"] .array?.compactMap({ $ 0.string })
您还可以通过self.json ["array"].arrayValue
替换self.json ["array"].array
以获得[String]
结果,而不是 [String]?
。您拥有一个包含Array
的Dictionary
,其中包含String
。当您访问Dictionary
中的值时,它会返回一个简单的String
数组。您可以像迭代任何数组一样对其进行迭代。
for obj in json["array"] {
println(obj.stringValue)
}
for stringInArray in json["array"]{
let value = stringInArray.1.stringValue
}
map
闭包内的 s 是什么意思? - IsuruJSON ["myArray"] .arrayValue.map {"\($0) "}
。 - skozin{ "myArray": [ ["one", "two", 0.234],["otree", "cat", 12.454] ] }
,那该怎么办? - μολὼν.λαβέJSON["myArray"].arrayValue.map { $0.stringValue }
- Tapani