【问题标题】:Handle decimal in jquery json在 jquery json 中处理十进制
【发布时间】:2011-08-11 18:57:37
【问题描述】:

我正在通过 $.get 从 ajax.php 脚本中检索一些信息。在 ajax.php 脚本中,我从数据库中获得不同的数字,我想在网站上实时更新。

但是,现在我遇到了一些来自数据库的值是十进制值的问题,例如:0.79

当我在 ajax.php 脚本中对它们进行 JSON 编码时,它们可以正常返回,例如:o_epc:"0.71" 但由于某种原因,我的 $.get 不理解这个值并将其返回为 null

关于如何让它发挥作用的任何想法?

这是我的 $.get 调用

                $.get("ajax.php", { opt: "networkStats", o_id: b }, function(r) {
                var j = eval('(' + r + ')');

                if(j.message) {
                    console.log(j.message);                     
                }
            });

这就是我编码我的json的方式

    $epc = (float) $db['o_epc'];

$RET['message']['o_epc'] = $epc;
die(json_encode($RET));

【问题讨论】:

    标签: php ajax json jquery


    【解决方案1】:

    如果 php 将它们编码为"0.71",那么它们已在脚本中的某处转换为字符串。 JSON 允许裸数字,但前提是它们实际上是整数/浮点数。因此,请检查您的脚本中是否存在 sprintf() 和 numberformat() 之类的内容,它们会在内部将值转换为字符串。

    【讨论】:

    • 我现在通过 $floatVar = (float) $db['o_epc']; 将其转换为浮点数;它在 json 中显示为没有“”,但现在我的 $.get 将其解释为 0 而不是 0.71
    【解决方案2】:

    尝试这样编码:

    o_epc: 0.71
    

    http://json.org 允许:

    number
        int
        int frac
    frac
        . digits
    

    【讨论】:

      猜你喜欢
      • 2011-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多