我有一个可能包含字符串元素数组的JSON,我想将它保存到变量中。到目前为止我做了:
import SwiftyJSON
(...)
var myUsers = [""]
if(json["arrayOfUsers"].string != nil)
{
myUsers = json["arrayOfUsers"] //this brings an error
}
错误说:
不能下标索引类型为
的JSON类型的值
如何将此数组安全地传递给我的变量?
答案 0 :(得分:2)
您必须获取SwiftyJSON在解析JSON数据时准备的字符串数组。
我会像你在问题中那样使用if let
而不是!= nil
,我们将使用SwiftyJSON .array
可选的getter:
if let users = json["arrayOfUsers"].array {
myUsers = users
}
如果出于任何原因出现类型错误,您可以显式地向下转换SwiftyJSON对象本身而不是使用getter:
if let users = json["arrayOfUsers"] as? [String] {
myUsers = users
}
请注意,您的数组字符串也未正确创建。这样做:
var myUsers = [String]()
或喜欢点击:
var myUsers: [String] = []
两个版本同样有效,并且都创建一个空字符串数组。