如何用SwiftyJSONparsingstring数组?
如何使用SwiftyJSON
将下面的JSON数组parsing为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
函数式编程使您可以轻松地使用“映射”function转换为[string]。 SwiftyJson让我们用下标'.string'
var stringArr:[String] = JSON["myArray"].arrayValue.map { $0.stringValue}
只需做到这一点:
for stringInArray in json["array"]{ let value = stringInArray.1.stringValue }
你有一个Dictionary
,它拥有一个包含String
的Array
。 当你访问Dictionary
一个值时,它返回一个简单的String
Array
。 你像任何数组一样迭代它。
for obj in json["array"] { println(obj.stringValue) }
你需要做的是首先过滤所有的非string, 然后转换为string与地图。
var stringArray = self.json["array"].array?.filter({ $0.string != nil }).map({ $0.string! })
如果你不先过滤,你的应用程序会崩溃,如果你有别的东西,而不是你想要的东西,尤其是当数据来自另一个来源。