mySQL 到 PHP 到 jQuery 以字符串形式返回浮点值 (JSON)

mySQL to PHP to jQuery returning floating point value as string (JSON)

我是 PHP、jQuery 和 SQL 的新手,我正在尝试 return 我的数据库中的数据用于我的 javascript 文件。出于某种原因,我的对象被 return 编辑为字符串,即使值应该是浮点数。

我的数据库结构将此列设置为浮点数。

这是我的 PHP 代码的一部分:

$q = "SELECT object FROM $tableName";

if($q === FALSE) { 
    die(mysql_error());
}

$sth = mysqli_query ($con, $q);
$rows = array();
while($r = mysqli_fetch_assoc($sth)) {
    $rows[] = $r;
    }

print json_encode($rows);

这是我的 javascript:

$.get('PHP file URL', function(data) {

    var object = JSON.parse(data);

但是,我得到以下(字符串)returned 而不是浮点数:

[{"object":"34.416"},{"object":"34.589"},{"object":"33.3948"}]

我似乎找不到已发布的相同问题。请让我知道我做错了什么。谢谢!

你有两个选择

$q = "SELECT object FROM $tableName";

if($q === FALSE) { 
    die(mysql_error());
}

$sth = mysqli_query ($con, $q);
$rows = array();
while($r = mysqli_fetch_assoc($sth)) {
    $rows[] = array('object'=> (float)$r['object'];
    }

print json_encode($rows);

或在jquery

$.get('PHP file URL', function(data) {
    var object = [];
    $.each(data, function(){
         object.push(parseFloat(this.object))
    });

    var object = JSON.parse(data);

快速解决方法是,将列选项从无符号 ZeroFill 更改为空。