【问题标题】:Django tastypie serializes DecimalField as json strings instead of numbersDjango sweetpie 将 DecimalField 序列化为 json 字符串而不是数字
【发布时间】:2013-01-13 04:45:09
【问题描述】:

我有一个带有tastypiedjango 应用程序。我的应用程序中的一个模型有一个DecimalField。当我收到来自 API 的 JSON 格式的响应时,所有小数字段都显示为 strings 而不是 numbers

例如我得到:

objects: [
    {
        id: "1",
        my_decimal_field: "84.54"
    }

而不是

objects: [
    {
        id: "1"
        my_decimal_field: 84.54
    }

id 字段也会发生这种情况。

¿有什么想法吗?

【问题讨论】:

  • 我也有同样的问题:十进制字段作为字符串返回。您可以在客户端级别调用 parseFloat,但在编写为每个返回的数据调用的函数时它不是很有效。这个问题有什么改善吗?

标签: django json tastypie


【解决方案1】:

在 JavaScript 中,JSON 解码为 double-precision floating point format,这会导致精度损失。 Decimal 对象被编码为 string 以保持精度。

如果要编码成 JSON 数字格式,可以使用FloatField

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-15
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    相关资源
    最近更新 更多