SwiftyJson 从字典中的数组中获取值
Posted
技术标签:
【中文标题】SwiftyJson 从字典中的数组中获取值【英文标题】:SwiftyJson get value from array in dictionary 【发布时间】:2020-07-24 11:32:10 【问题描述】:一段时间以来,我一直在尝试检索 code 的值。这是我从服务器返回的 json:
"message": "The given data was invalid.",
"errors":
"code": [
"The code has already been taken."
]
如何使用 swiftyJson 获取“代码”的值?
我已经尝试过了,但我认为它不正确。
let list: Dictionary<String, JSON> = json["errors"].dictionaryValue
var retunValue = list.values.first
【问题讨论】:
为什么不把你已经做过的事情再做一次呢?list["code"].dictionaryValue
@JoakimDanielson 如果我像print(list["code"]?.dictionaryValue)
一样打印它,我会得到:Optional([:])
。但是当我使用print(list["code"]?.arrayValue)
时,我得到:Optional([The code has already been taken.])
。如何删除 []?
你得到 [] 因为它是一个数组,所以把它当作一个数组来对待。
【参考方案1】:
您可以像这样访问"code"
数组的第一个元素:
json["errors"]["code"].array?.first?.string
如果 code
是一个空数组,或者 JSON 不是预期的结构,这将为您提供 nil
。
由于"code"
是一个数组,它可能包含多个字符串,因此您可能需要[String]
:
json["errors"]["code"].array?.compactMap $0.string ?? []
如果 JSON 不是预期的结构,这将为您提供一个空数组。
【讨论】:
以上是关于SwiftyJson 从字典中的数组中获取值的主要内容,如果未能解决你的问题,请参考以下文章