如何将json转换成字符串数组

How to convert json into String array

您好,我是 Swift 的新手,我正在尝试制作一个简单的应用程序。

应用程序从服务器获取数据为 JSON 格式。

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' 以在调用者中进行进一步处理。 'completion(lang, purpose) 时发生错误。 Xcode 说

" Cannot convert value of type '[JSON]' to expected argument type '[String]'".

错误,我猜是因为 .arrayValue 不会将 resultMessage["lang"] 更改为 [String] 类型....谁能给我一些建议??

那 2 个数组

let lang = resultMessage["lang"].array
let purpose = resultMessage["purpose"].array

属于 JSON 类型,它不是 String 类型,您需要转换它们

let langStr = lang.map { [=11=].string }
let purposeStr = purpose.map { [=11=].string }
let langStr = lang.map { [=10=].string }
let purposeStr = purpose.map { [=10=].string }