【发布时间】:2017-05-03 16:05:26
【问题描述】:
场景:我有一个无模式数据库 API,它根据传入的 json 推断类型。但是,一旦数据库推断出架构,添加到同一表的所有后续条目都必须遵循现有架构。我正在从我的 Swift 应用程序将 json 格式的数据推送到 REST 端点。
我正在使用ObjectMapper 为 Swift 应用程序中的数据定义模式/序列化,例如:
class ExampleDatum: Mappable {
value: Float?
init() {
}
required init?(map: Map) {
}
func mapping(map: Map) {
value <- map["value"]
}
}
问题来了,如果value是整数,json格式不带小数点,导致该字段解释为整数/浮点数不一致:
let datum = ExampleDatum()
datum.value = 5.0
print(datum.toJSONString())
>> {"value": 5}
在 JSON 中嵌入此类型信息的最佳做法是什么,例如强制执行小数点总是包括在内?理想情况下类似于{"value": 5.0}
【问题讨论】:
-
我很惊讶这甚至可以编译。该框架的指定启动器是
ExampleDatum(JSON: [String: Any])。这样,您的浮点数将由内置映射器处理。也许这会解决你的问题? -
抱歉忘记了默认构造函数,在上面的代码示例中已修复。但是这里的问题是从float序列化到映射的json
标签: json swift serialization floating-point objectmapper