如何使用 SwiftyJSON 获取字符串元素数组?

How to fetch array of string elements with SwiftyJSON?

我有一个 JSON,它可能包含一个字符串元素数组,我想将它保存到一个变量中。到目前为止我做了:

import SwiftyJSON    
(...)
var myUsers = [""]
if(json["arrayOfUsers"].string != nil)
{
    myUsers = json["arrayOfUsers"] //this brings an error
}

错误说:

cannot subscript a value of type JSON with an index of type string

如何将这个数组安全地传递给我的变量?

您必须获取 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] = []

两个版本同样有效,并且都创建一个空字符串数组。