尝试解码 JSON 日期时显示“JSON 写入中的类型无效 (__NSTaggedDate)”

geo*_*ebp 5 postgresql json date pg swift

当我尝试从具有日期变量的数据库中解码 JSON 对象时,出现错误“由于未捕获的异常‘NSInvalidArgumentException’而终止应用程序,原因:‘JSON 写入中的无效类型 (__NSTaggedDate)’”。错误发生在以下代码行: let jsonData = try JSONSerialization.data(withJSONObject: self) 中:

extension Array where Element == Dictionary<String,Any> {
    func decode<T>() throws -> [T] where T: Codable {
        let jsonData = try JSONSerialization.data(withJSONObject: self)
        // 1.
        let decoder = JSONDecoder()

        // 2.
        return try decoder.decode([T].self, from: jsonData)
    }
}
Run Code Online (Sandbox Code Playgroud)

我使用此方法使用 PG 依赖项将 Postgres SELECT 查询的结果转换为 Codable 对象数组。

case .success(let result):
   let array = result.rows.map { Dictionary($0) }

   let objects = try! array.decode() as [Model]

   completion(objects,nil)
Run Code Online (Sandbox Code Playgroud)