小编jus*_*ime的帖子

JSONEncoder的dateEncodingStrategy无法正常工作

我正在尝试使用Swift 4的Encodable + JSONEncoder将结构序列化为String.该对象可以保存异类值,如String,Array,Date,Int等.

使用的方法可以正常工作,但Date除外.JSONEncoder的dateEncodingStrategy属性没有任何影响.

这是一个片段,它重现了Playground中的行为:

struct EncodableValue:Encodable {
    var value: Encodable

    init(_ value: Encodable) {
        self.value = value
    }

    func encode(to encoder: Encoder) throws {
        try value.encode(to: encoder)
    }
}

struct Bar: Encodable, CustomStringConvertible {
    let key: String?
    let value: EncodableValue?

    var description: String {
        let encoder = JSONEncoder()
        let dateFormatter = DateFormatter()
        dateFormatter.dateFormat = "E, d MMM yyyy"
        dateFormatter.locale = Locale(identifier: "en_US_POSIX")
        encoder.dateEncodingStrategy = .formatted(dateFormatter)
        let jsonData = try? encoder.encode(self)
        return String(data: jsonData!, encoding: .utf8)!
    } …
Run Code Online (Sandbox Code Playgroud)

serialization swift encodable jsonencoder

2
推荐指数
1
解决办法
1379
查看次数

标签 统计

encodable ×1

jsonencoder ×1

serialization ×1

swift ×1