如何将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转换为字符串数组的主要内容,如果未能解决你的问题,请参考以下文章
如何将一个json数组类型的字符串转换为json数组,然后遍历数组取出json对象,最后在js中取出里面的属性?