【发布时间】:2018-08-24 21:01:04
【问题描述】:
我创建了一个“可编码”结构来序列化数据集并将其编码为 Json。除了计算的属性没有显示在 json 字符串中之外,一切都很好。如何在编码阶段包含计算属性。
例如:
struct SolidObject:Codable{
var height:Double = 0
var width:Double = 0
var length:Double = 0
var volume:Double {
get{
return height * width * length
}
}
}
var solidObject = SolidObject()
solidObject.height = 10.2
solidObject.width = 7.3
solidObject.length = 5.0
let jsonEncoder = JSONEncoder()
do {
let jsonData = try jsonEncoder.encode(solidObject)
let jsonString = String(data: jsonData, encoding: .utf8)!
print(jsonString)
} catch {
print(error)
}
打印出 "{"width":7.2999999999999998,"length":5,"height":10.199999999999999}"
我也很好奇有 7.29999.. 而不是 7.3,但我的主要问题是“我怎样才能在这个 json 字符串中也包含“音量”?
【问题讨论】:
标签: ios json swift codable computed-properties