我有一些类型,我根据CodingKeys需要为其数据成员提供自定义名称。我想根据不同调用站点的要求,CodingKeys在将数据发送到服务器之前仅对类型的子集进行编码。所需的编码因调用站点而异,因此无需考虑默认实现。
示例类型(用于演示目的):
struct Account: Codable
{
let name: String;
var balance: Float;
mutating func set(balance: Float)
{
self.balance = balance; // verifications, etc.
}
}
struct User: Codable
{
enum CodingKeys: String, CodingKey
{
case
id = "db_id",
name = "db_name",
account
// many more keys
}
let id: Int;
let name: String;
var account: Account;
// many more data members
}
Run Code Online (Sandbox Code Playgroud)
创建实例:
var user = User(
id: 1, name: "john", account: Account(name: "checking", balance: 10_000)); …Run Code Online (Sandbox Code Playgroud)