gpt4 book ai didi

Swift Struct 是 Codable 但不能编码

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

struct KOTextPrompt: Codable {
let prompt: String
let response: String
}

我有一个非常简单的 Codable 结构。我一直在尝试使用 Alamofire 将其作为参数传递并发生崩溃

2019-07-31 14:52:00.894242-0700 Kirby[8336:1685359] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Invalid type in JSON write (__SwiftValue)'

我尝试打印下面的代码并得到“false”。我做错了什么?

let gg = KOTextPrompt(prompt: "testprompt", response: "testresponse")
print(JSONSerialization.isValidJSONObject(gg))

最佳答案

这里的问题是作为 KOTextPromptit 实例的 gg 不是有效的 JSON 对象。您需要对您的结构进行编码:

struct KOTextPrompt: Codable {
let prompt, response: String
}

let gg = KOTextPrompt(prompt: "testprompt", response: "testresponse")
do {
let data = try JSONEncoder().encode(gg)
print("json string:", String(data: data, encoding: .utf8) ?? "")
let jsonObject = try JSONSerialization.jsonObject(with: data)
print("json object:", jsonObject)
} catch { print(error) }

这将打印

json string: {"response":"testresponse","prompt":"testprompt"}

json object: { prompt = testprompt; response = testresponse; }

关于Swift Struct 是 Codable 但不能编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57299367/

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