Scénario: J'ai une API de base de données schemaless qui déduit le type basé sur json qui y est passé. Une fois que la base de données a déduit le schéma, toutes les entrées suivantes ajoutées à la même table doivent suivre le schéma existant. Je transfère des données au format json vers un point de terminaison REST à partir de mon application Swift.Sérialisation en flottant vers JSON dans Swift sans abandonner la décimale
J'utilise ObjectMapper pour définir le schéma/sérialisation des données dans l'application Swift, par exemple:
class ExampleDatum: Mappable {
value: Float?
init() {
}
required init?(map: Map) {
}
func mapping(map: Map) {
value <- map["value"]
}
}
La question est que si la valeur est un nombre entier, JSON est formaté sans la virgule, ce qui à l'interprétation contradictoire de ce champ comme un entier/float:
let datum = ExampleDatum()
datum.value = 5.0
print(datum.toJSONString())
>> {"value": 5}
Quelle est la meilleure pratique pour intégrer ces informations de type JSON, par exemple pour appliquer le point décimal toujours être inclus? Idéalement quelque chose comme {"value": 5.0}
Je suis supprised que cette compile même. L'initiliazer désigné pour ce framework est 'ExampleDatum (JSON: [String: Any])'. De cette façon, votre flottant sera traité par le mappeur intégré. Peut-être que cela résoudrait votre problème? – Desdenova
Désolé, constructeur par défaut oublié, corrigé dans l'exemple de code ci-dessus. Mais le problème ici est pour la sérialisation de float vers le json mappé –