如何从JSON数组中排除撇号?

彼得

我正在尝试输出以下PHP脚本以输出不包含值周围的撇号的JSON数组,因为它们是数字。

使用下面的代码,我不断获得以下输出:

[{"name":"person1","sumValue":"200"},{"name":"person2","sumValue":"100"},{"sumTotal":"300"}]

以下是我当前拥有的PHP脚本,该脚本创建了上面看到的数组。数字周围不应带有“”,而应看起来像这样

[{"name":"person1","sumValue":200},{"name":"person2","sumValue":100},{"sumTotal":300}]

我可以在脚本中进行哪些更改以获得此结果?

if (mysqli_connect_errno()) {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$sql =  "SELECT name, SUM(value) as numvalue 
         FROM Table1
            LEFT JOIN Table2 USING(DevName)
         WHERE name <> '' 
         and name is not null
         GROUP BY name";

if ($result = mysqli_query($con, $sql)) {

    $resultArray = array();
    $tempArray = array();

    // you want an array of objects, so create an object to sum the sub totals
    $total = new stdClass;
    $total->sumTotal = 0;

    while($row = $result->fetch_object()) {
        $tempArray = $row;
        array_push($resultArray, $tempArray);

        $total->sumTotal = bcadd($total->sumTotal, $row->numvalue);
    }

    $resultArray[] = $total;
    echo json_encode($resultArray);
}

mysqli_close($con);
雨果·迪亚斯(Hugo Dias)

您可以在对json_encode方法的调用中使用options参数来更改编码。根据文档json_encode

编码受提供的选项的影响,另外,浮点值的编码取决于serialize_precision的值。

因此,根据文档,我们具有常量JSON_NUMERIC_CHECK

将数字字符串编码为数字。自PHP 5.3.3起可用。

您的代码将是:

$resultArray[] = $total;
echo json_encode($resultArray,JSON_NUMERIC_CHECK);

您可以在此处找到完整的文档:

https://php.net/manual/zh/function.json-encode.php

https://www.php.net/manual/zh/json.constants.php

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章