使用SwiftyJSON如何将以下JSON数组解析为Swift [String]?
{
"array": ["one", "two", "three"]
}
Run Code Online (Sandbox Code Playgroud)
我试过这段代码,但它对我不起作用:
for (index: String, obj: JSON) in json["array"] {
println(obj.stringValue)
}
Run Code Online (Sandbox Code Playgroud)
处理这个问题的最佳方法是什么?谢谢.
Gwe*_*dle 89
{
"myArray": ["one", "two", "three"]
}
Run Code Online (Sandbox Code Playgroud)
使用SwiftyJSON,您可以获得一个JSON对象数组:
var jsonArr:[JSON] = JSON["myArray"].arrayValue
Run Code Online (Sandbox Code Playgroud)
然后,函数编程可以使您使用"map"函数轻松转换为[String].SwiftyJson让你使用下标'.string'来转换字符串类型
var stringArr:[String] = JSON["myArray"].arrayValue.map { $0.stringValue}
Run Code Online (Sandbox Code Playgroud)
如果类型不匹配,SwiftyJSON允许您String?使用$ 0.string或非可选String使用stringValue和默认的空String值.
如果您想确保具有非误报的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"].array由self.json["array"].arrayValue有[String]结果,而不是[String]?.
你有一个Dictionary持有的Array持有String秒.当您访问中的值时Dictionary,它返回一个简单Array的Strings.你像任何数组一样迭代它.
for obj in json["array"] {
println(obj.stringValue)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
26709 次 |
| 最近记录: |