Swift 如何将json转换为字符串数组
嗨,我是Swift的新手,我正在尝试做一个简单的应用程序 应用程序以JSON格式从服务器获取数据Swift 如何将json转换为字符串数组,swift,swifty-json,Swift,Swifty Json,嗨,我是Swift的新手,我正在尝试做一个简单的应用程序 应用程序以JSON格式从服务器获取数据 func addLangList(completion: @escaping ([String], [String]) -> Void) { let request = NetworkRequest() let reqUrl = NetworkInformation.serverAddr + "/word/purpose" let parameters: Parame
func addLangList(completion: @escaping ([String], [String]) -> Void) {
let request = NetworkRequest()
let reqUrl = NetworkInformation.serverAddr + "/word/purpose"
let parameters: Parameters = ["category": "lang"]
request.sendGetRequest(url: reqUrl, parameters: parameters, success: { (response) in
let json = JSON(response)
let isSuccess = json[ServerResponseKey.KEY_RESULT]
if isSuccess == true {
var resultMessage:JSON = json[ServerResponseKey.KEY_MESSAGE]
let lang = resultMessage["lang"].arrayValue
let purpose = resultMessage["purpose"].arrayValue
completion(lang, purpose)
}
}, fail: request.CommonNetworkFailureHandler)
}
通过使用Swiftyjson,函数将接收到的数据转换为JSON格式。在闭包内部,调用“completion”以在调用者中进行进一步处理。“完成(语言,目的)”时出错。Xcode说
“无法将类型为“[JSON]”的值转换为预期的参数类型“[String]”
我猜,这个错误是因为.arrayValue
没有将resultMessage[“lang”]
更改为[String]
类型……有人能给我一些建议吗???这两个数组
let lang = resultMessage["lang"].array
let purpose = resultMessage["purpose"].array
类型为JSON
,而不是String
,您需要强制转换它们
let langStr = lang.map { $0.string }
let purposeStr = purpose.map { $0.string }
如果他们解释问题和解决方案,而不是只发布代码,那么答案(对问题的作者和本帖的未来读者)会更有帮助。好的。。在这个答案中,我们将json中的字符串(根据需求)值映射为变量的赋值。请参阅下面的链接:。评论澄清了答案,属于答案,而不是评论。此外,您只重新键入了在此帖子之前发布的答案的内容。
let langStr = lang.map { $0.string }
let purposeStr = purpose.map { $0.string }