[英]Extract Array of Strings from Decoded JSON in Swift
我正在使用 JSONDecoder 将从 API 获得的 JSON 解码为一个对象数组,每个对象都包含一个感兴趣的键值对。 对于该键,我想获得一个值数组(即字符串)。 JSON 可以很好地解码成一个数组,但是,我无法使用 Array[key] 为我感兴趣的键提取值数组。 我究竟做错了什么?
启动 JSON 看起来像:
[{"word":"hi"},{"word":"howdy"},{"word":"hullo"}]
我的代码:
struct Synonym: Codable {
let word: String
}
typealias Synonyms = [Synonym]
//Code to create session etc and get data
let mysynonyms = try? JSONDecoder().decode(Synonyms.self, from: data)
//everything works fine up to here
var words = mysynonyms?[word]! //THROWS ERROR Use of unresolved identifier 'word'
将不胜感激任何关于为什么最后一行不起作用的建议。
var words = (mysynonyms?? []).map { $0.word }
在类型(结构/类)上使用[]
下标语法在 Swift 中不起作用——相反,您需要使用点语法来获取属性。 而且,由于您想要所有单词,您可以使用map
来转换数组。
我也在用??
要说“如果mysynonyms
为 nil,则 map 为空数组”,因此如果mysynonyms
为nil
,则words
将为[]
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.