【发布时间】:2020-07-29 04:03:45
【问题描述】:
当我通过 urlSession 向服务器发出 api 请求时,我可能会得到类似的 json
{
"movie": "Avengers",
"director": "Joss Whedon",
}
或者像这样
{
"apiKey": "invalid"
}
我有两个这样的结构要保存
struct Movie: Codable {
let request: String
let director: String
init(movie:String, director:Sring) {
self.movie = movie
self.director = director
}
}
struct Valid: Codable {
let apiKey: String
init(apiKey:String) {
self.apiKey = apiKey
}
}
根据我想解码为第一个结构或第二个结构的响应。如何做到这一点。
【问题讨论】:
-
不确定这是否是您希望让开发人员知道他们的 API 密钥是否无效的正确方式。我认为如果你抛出错误会更好,如果它是无效的,如果不是然后发送数据。这样你就不必担心哪个结构被解码了。
-
@JulesL。谢谢。但由于某种原因,我不得不走这条路。我将如何进行解码?
-
为什么要保存无效响应?如果解码不成功,请忽略“apiKey”。顺便说一句,您的 JSON 字符串和您的结构中没有请求键,它缺少电影属性。
标签: ios json swift codable urlsession