【发布时间】:2021-10-01 06:59:59
【问题描述】:
我在 JSON 中有这个日期:2021-07-31T00:00:00+02:00 非常标准。
我的 Postgre SQL 将日期存储为秒,例如 646869600。
我应该如何设置解码器?
let decoder = JSONDecoder()
decoder.dateDecodingStrategy = .deferredToDate
let o7 = try! decoder.decode(Organization.self, from: o6)
我尝试了这三个:.deferredToDate、.iso8601、.secondsSince1970。都引发了同样的错误:
本应解码 Double,但找到了一个字符串/数据。
怎么了?
【问题讨论】:
-
您的日期似乎没有被存储为秒。你检查过数据库字段吗?展示您的模型。您可以使用自定义 DateEncodingStrategy 设置全局 JSONEncoder 和 JSONDecoder
-
也许最好也包含您正在解码的 json。看起来该错误与其他内容有关。
-
@JoakimDanielson 这里真正重要的是模型和迁移
-
如果 JSON 包含您与我们共享的字符串,
.iso8601(或带有适当格式化程序的.formatted)应该可以工作。我们需要查看原始 JSON 以进一步提供建议。
标签: swift datetime codable vapor vapor-fluent