gpt4 book ai didi

使用 snake_case 转换的 JSON 编码忽略 CodingKeys

转载 作者:行者123 更新时间:2023-11-28 13:42:40 24 4
gpt4 key购买 nike

我将以下结构发送到端点:

struct IdleAlarmRequest: Encodable {
let idleAlarm: [IdleAlarmParameters]

enum CodingKeys: String, CodingKey {
case idleAlarm = "IdleAlarm"
}
}

无论我做什么,idleAlarm 将始终在生成的 JSON 字符串中写为 idle_alarm。这应该是 IdleAlarm,因为“对象”是使用此 API 的 PascalCased,只有字段应该是 snake_cased。 可解码 工作正常。

所有对象中的所有其他字段都是 snake_cased,所以如果我不使用 snake_case,我需要为数百个字段添加 CodingKeys。

最佳答案

您的问题中没有代码,所以我无法完全理解您在做什么,请考虑对其进行编辑以添加更多详细信息。

但我猜你是这样编码你的结构的:

let request = IdleAlarmRequest(...)

let encoder = JSONEncoder()
encoder.keyEncodingStrategy = .convertToSnakeCase
do {
let data = try encoder.encode(request)
}
catch {

}

convertToSnakeCase 策略将您的编码 key 从驼峰式转换为蛇式。

如果您不想要这种行为,您可以删除该行。

编辑:您可以创建自定义 key 编码策略。

encoder.keyEncodingStrategy = .custom { key -> CodingKey in
// Your own code...
}

关于使用 snake_case 转换的 JSON 编码忽略 CodingKeys,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55840821/

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