将 JSON 数组中的字符串元素解析为整数


parse string element in JSON array to integer

 $con = new DBConnector();
 $sth =  $con->Query("SELECT medicinename as label, factor as data FROM medicine_master_tbl limit 4");
$rows = array();
while($r = mysql_fetch_assoc($sth)) {
         $rows[] = $r;
      }
echo json_encode($rows);

我的查询没有问题,但返回值是..

[{"label":"rrp","data":"5"},{"label":"t","data":"34"},{"label":"tt","data":"4"},{"label":"nutrachin","data":"45"}]

我需要如下所示的 JSON 数组。

[{"label":"rrp","data":5},{"label":"t","data":34},{"label":"tt","data":4},{"label":"nutrachin","data":45}]

其中数据在此数组中被视为字符串,我需要将其解析为整数..提前感谢。

一个简单的。

while ($r = mysql_fetch_assoc($sth)) {
     $r["data"] = intval($r["data"]);
     $rows[] = $r;
}

理想情况下,如果factor是数值类型,则数据库连接器将允许您指定在行中返回的数据类型。例如,PDO和mysqlnd可以返回本机类型(请参阅如何使用PDO从MySQL获取数字类型?)。

但是,您可以执行以下操作:

while ($r = mysql_fetch_assoc($sth)) {
    $r['data'] = intval($r['data']);
    $rows[] = $r;
}

这样,您的 JSON 编码将具有一个整数。