gpt4 book ai didi

ios - decoder.decode 将有效的 iso8601 日期设置为 nil

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

<分区>

在 Swift 中,我有以下代码...

let decoder = JSONDecoder()
decoder.dateDecodingStrategy = .iso8601
let articles = try decoder.decode(Articles.self, from: data)

class Article: Codable {

init(_ PartitionKey : String?, RowKey : String?, PublishedDateGmt:Date?, Title:String?) {
self.PartitionKey = PartitionKey
self.RowKey = RowKey
self.PublishedDateGmt = PublishedDateGmt
self.Title = Title
}

enum CodingKeys: String, CodingKey {
// include only those that you want to decode/encode
case PartitionKey
case PublishedDateGmt
case Title
case RowKey
}


let RowKey: String?
let PartitionKey: String?
let PublishedDateGmt: Date?
let Title: String?

}

这是 JSON 的示例。

{
"PartitionKey": “test1”,
"RowKey": “123”,
"PublishedDateGmt": "2019-06-29T17:27:46Z",
"Title": “Test Title”
}

除 PublishedDateGmt 之外的所有内容都序列化。我没有得到任何序列化它的错误,除了它给了我零。

我什至试过下面的代码,但日期转换失败。 (在下面的示例中,我确实遇到了转换失败,而不是 nil 是 Article 对象中属性的最终结果)。

// let dateFormatter = DateFormatter()
//dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss'Z'"//2019-06-29T17:27:46Z
//decoder.dateDecodingStrategy = .formatted(dateFormatter)

除序列化为 nil 的 PublishedDateGmt 日期字段外,所有内容都正确序列化。

返回的 json 数据中的日期示例是:2019-06-29T17:27:46Z

这应该是一个有效的 iso8601 日期,对吧?

其他所有内容都正确转换为 Article 对象,并且编码键设置正确。

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