如何使用 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] = []
两个版本同样有效,并且都创建一个空字符串数组。
我有一个 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] = []
两个版本同样有效,并且都创建一个空字符串数组。