【问题标题】:NSJSONSerialization output number as float?NSJSONSerialization 输出数字为浮点数?
【发布时间】:2013-05-14 16:49:49
【问题描述】:

我正在使用NSJSONSerialization 将字典转换为 JSON。

如果我在该字典中包含一个 NSDecimalNumber ( == 0 ),它将输出为 0。这是错误的。 0 是一个整数。我需要它输出为0.0

这就是我正在做的:

NSDecimalNumber *decimal = [[NSDecimalNumber alloc] initWithFloat:0.0f];
// when fed into NSJSONSerialization it outputs as 0

有没有办法输出为0.0

或者我的假设不正确? 0 是一个有效的浮点数吗?

【问题讨论】:

  • 虽然0在Objective-C编程语言中不被认为是float类型的常量,但它绝对是一个有效的浮点数。由于 JSON 将事物编码为名称-值对,没有类型信息,因此由接收方决定反序列化字段的最终类型。
  • 那么你想要的是你的 JSON 看起来像这样吗?:{ myFloat: 0.0 ...}

标签: ios cocoa foundation nsjsonserialization


【解决方案1】:

没有办法影响NSJSONSerialization 输出数字的方式。但你真的不应该担心这个。 JSON 不区分不同类型的数字,因此无论您使用哪种实际数字类型进行计算,您始终应该接受带小数点和不带小数点的数字。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-29
    • 1970-01-01
    • 1970-01-01
    • 2014-11-10
    • 2020-04-18
    • 1970-01-01
    • 1970-01-01
    • 2022-01-14
    相关资源
    最近更新 更多