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

Posted

技术标签:

【中文标题】如何将json转换为字符串数组【英文标题】:How to convert json into String array 【发布时间】:2019-09-01 11:50:51 【问题描述】:

您好,我对 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 格式。在闭包内部,调用“完成”以在调用者中进行进一步处理。 '完成(语言,目的)发生错误。 Xcode 说

“无法将类型 '[JSON]' 的值转换为预期的参数类型 '[String]'”。

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

【问题讨论】:

【参考方案1】:

这两个数组

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

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

let langStr = lang.map  $0.string 
let purposeStr = purpose.map  $0.string 

【讨论】:

【参考方案2】:
let langStr = lang.map  $0.string 
let purposeStr = purpose.map  $0.string 

【讨论】:

如果答案解释问题和解决方案,而不是仅发布代码,则答案会更有帮助(对问题的作者和该线程的未来读者)。 ok.. 在这个答案中,我们将 json 中的字符串(根据要求)值映射为对变量的赋值。请参阅以下链接:codeburst.io/swift-map-flatmap-filter-and-reduce-53959ebeb6aa How do I write a good answer?。澄清答案的评论,属于答案,而不是评论。此外,您只是重新输入了在这篇文章之前发布的答案的内容。

以上是关于如何将json转换为字符串数组的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 PHP 将 JSON 字符串数据转换为数组?

如何将一个json数组类型的字符串转换为json数组,然后遍历数组取出json对象,最后在js中取出里面的属性?

如何将 JSON 字符串转换为 JSON 数组列表? [复制]

如何将数组转换成JSON-CSDN论坛

如何将原型数组转换为 json 字符串

如何将json字符串转换为元素数组?