【发布时间】:2018-03-26 04:40:24
【问题描述】:
(这是这个问题的后续:Using Decodable protocol with multiples keys。)
我有以下 Swift 代码:
let additionalInfo = try values.nestedContainer(keyedBy: UserInfoKeys.self, forKey: .age)
age = try additionalInfo.decodeIfPresent(Int.self, forKey: .realage)
我知道,如果我使用 decodeIfPresent 并且没有该属性,如果它是可选变量,它仍然可以正确处理它。
例如,下面的 JSON 可以使用上面的代码对其进行解析。
{
"firstname": "Test",
"lastname": "User",
"age": {"realage": 29}
}
以下 JSON 也可以使用。
{
"firstname": "Test",
"lastname": "User",
"age": {"notrealage": 30}
}
但以下不起作用。
{
"firstname": "Test",
"lastname": "User"
}
如何使所有 3 个示例都工作? nestedContainer 有类似decodeIfPresent 的东西吗?
【问题讨论】:
标签: ios json swift swift4 codable