我正在从服务器解析json。我在json中得到4个值,所以我创建了模型类
class PriceData: Mappable {
var buy: Double?
var sell: Double?
var spot_price: NSNumber?
var timestamp: String?
var timesStampDt: Date?
required init?(map: Map) {
//
}
func mapping(map: Map) {
buy <- map["buy"]
sell <- map["sell"]
spot_price <- map["spot_price"]
timestamp <- map["timestamp"]
print(String(describing: GlobalMethods.dateFormat(dt: timestamp!)))
timesStampDt <- map[String(describing: GlobalMethods.dateFormat(dt:
timestamp!))]
}
}
我将时间戳记作为字符串类型,但是在解析时我需要隐蔽地转换为日期,因此我使用此方法和
将timeStamp转换为日期 static func dateFormat(dt: String) -> Date{
let formatter = Foundation.DateFormatter()
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
let date1 = formatter.date(from: dt)
print("date:\(String(describing: date1))")
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
let resultTime = formatter.date(from: dt)
return resultTime!
}
答案 0 :(得分:0)
您可能要使用对象映射器中的Transform方法。检查DateTransform类并按如下所示使用它。
timesStampDt <- (map["timestamp"], DateTransform())
Tis会将您的时间戳记转换为Date。您可以进一步学习转换类并自己进行任何对象转换,这非常灵活
答案 1 :(得分:0)
为什么不简单地让JSONDecoder处理日期解析?您可以在解码器上设置your format,以配置获取日期的格式,以便解码器知道如何对其进行解码。
使用JSONDecoder
和Codable
进行操作使解析代码更加简洁。
Here是可编码的教程,供您阅读。