gpt4 book ai didi

swift - 将类编码为单个值而不是字典 swift

转载 作者:行者123 更新时间:2023-12-02 03:03:15 24 4
gpt4 key购买 nike

给定类:

class ComplementApp: Codable{
let name: String
let idSpring: String
}

class MasterClass: Encodable{
let complement: ComplementApp
///Other propierties
}

我想得到:

//Where "Some ID" is the value of complement.idSpring
{
complement: "Some ID"
//Plus the other properties
}

不是

{
complement: {
name: "Some Name",
idSpring: "Some ID"
}
//Plus other properties
}

这是默认值。我知道我可以在 MasterClass 中抛出编码函数和 CodingKeys,但我有 20 个其他变量,我应该添加 19 个额外的键。我可以在 ComplementApp 中实现 CodingKeys 吗?

最佳答案

您可以通过自定义 encode(to:) 实现来实现这一点:

class ComplementApp: Codable {
let name: String
let idSpring: String

func encode(to coder: Encoder) throws {
var container = coder.singleValueContainer()
try container.encode(idSpring)
}
}

使用 singleValueContainer 将导致您的对象被编码为单个值而不是 JSON 对象。而且您不必接触外部类。

关于swift - 将类编码为单个值而不是字典 swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59619518/

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