gpt4 book ai didi

json - 在单个类中处理相同值的 2 个键

转载 作者:行者123 更新时间:2023-11-30 12:08:13 39 4
gpt4 key购买 nike

我有一个用例,我使用

从 JSON 中获取分数
let score = json["score_test"].arrayValue.map {Score.decode(json: $0)}

我必须重用此类来进行响应,其中只有 key 的值发生变化,即

let score = json["score"].arrayValue.map {Score.decode(json: $0)}

有没有办法实现这一点,以便我获取 Score object 的数据,无论键是 score_test 还是 score,具体取决于JSON 使用同一个类?

我还尝试使用 nil 检查,但由于对象已初始化,因此无法正常工作。

分数模型:

class Score: Object, Decoder {

dynamic var id: String = ""
dynamic var title: String = ""
dynamic var body: String = ""
dynamic var cardOrder: Int = 0

dynamic var video: Video? = nil

override static func primaryKey() -> String? {
return "id"
}

typealias T = Score

// MARK: Decoder method
static func decode(json: JSON) -> Score {
let id = json["_id"].stringValue
let title = json["title"].stringValue
let body = json["data"].stringValue
let cardOrder = json["card_order"].intValue

var video: Video?
if (json["video"].exists()) {
video = Video.decode(json: json["video"])
}

let score = Score()
score.id = id
score.title = title
score.body = body
score.video = video
score.cardOrder = cardOrder

return score
}
}

最佳答案

据我了解,score 的类型是[Score],所以我要做的是:

var score = json["score_test"].arrayValue.map {Score.decode(json: $0)}

if score.isEmpty {
score = json["score"].arrayValue.map {Score.decode(json: $0)}
}

关于json - 在单个类中处理相同值的 2 个键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46421976/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com