json - 在不删除小数的情况下在 Swift 中将 float 序列化为 JSON

标签 json swift serialization floating-point objectmapper

场景:我有一个无模式数据库 API,它根据传递给它的 json 推断类型。但是,一旦数据库推断出模式,添加到同一个表的所有后续条目都必须遵循现有模式。我正在将 json 格式的数据从我的 Swift 应用推送到 REST 端点。

我正在使用 ObjectMapper在 Swift 应用程序中定义数据的模式/序列化,例如:

class ExampleDatum: Mappable {

    value: Float?

    init() {
    }

    required init?(map: Map) {
    }

    func mapping(map: Map) {
        value <- map["value"]
    }
}

问题来了,如果 value 是一个整数,json 的格式是没有小数点的,导致这个字段作为整数/ float 的解释不一致:

let datum = ExampleDatum()
datum.value = 5.0
print(datum.toJSONString())
>> {"value": 5}

将此类型信息嵌入 JSON 的最佳做法是什么,例如强制小数点总是被包括在内?理想情况下类似于 {"value": 5.0}

最佳答案

尝试

let value = 5.0
let float_string = String(format: "%#f", value)

关于json - 在不删除小数的情况下在 Swift 中将 float 序列化为 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43765065/

相关文章:

json - 在 Swift 上转义 json 字符串

android - 在 Volley 中设置 cookie 不起作用

javascript - Angular 上的嵌套 ng-repeat 不起作用

c# - Python 序列化 c# 反序列化

ruby-on-rails - 尝试升级 rails 依赖项会导致序列化程序引发错误 : undefined method `model_name' for Hash:Clas

java - Xstream toXml 不序列化基类

android - 作为回应 Get single object 我如何根据我的要求解析

ios - 无法使用类型的参数列表调用 'requestAuthorizationToShareTypes'

ios - 快速识别以模态方式呈现的 View Controller

ios - collectionViewCell 内的嵌入式 collectionView 未固定到安全区域布局