PHP的MySQL JSON字符串。修复逗号

时间:2016-11-11 15:38:49

标签: php mysql json

我正在创建这个JSON,我需要从中删除最后一个逗号。 (是的,我知道我可以做一个简单的方法,而不是自己制作json,但我需要它像这样{" 1":0," 2":4,&# 34; 3":1.5})那我该怎么做呢? (是的,我在代码中有一种工作方式,但它会像我需要的那样显示它。)

<?php
require 'dbConnect.script.php';

$query="SELECT * FROM `trash`";
if($is_query_run=mysql_query($query)){
    print "{";
    while($query_execute=$query_execute=mysql_fetch_assoc($is_query_run)){

       echo '<tr><td>"'.$query_execute['id'].'"</td>:<td>'.$query_execute['weight'].',</td></tr>';
       //$rows = array();
       //$rows[] = $query_execute;

       //print json_encode($rows);

   }
   print "}";

}

else{

   echo "query notexecuted";

}
?>

3 个答案:

答案 0 :(得分:1)

在您的示例中,您只需创建一个数组:

$array = ["1" => 0, "2" => 4, "3" => 1.5];
$json = json_encode($array);

由于此数组不以零(索引数组所做)开头,因此这将为您提供所需的结果。

如果您想以零开头,仍然可以获得一个对象:

$array = ["0" => 2, "1" => 0, "2" => 4, "3" => 1.5];

您可以使用选项JSON_FORCE_OBJECT作为第二个参数,如下所示:

$array = ["0" => 2, "1" => 0, "2" => 4, "3" => 1.5];
$json = json_encode($array, JSON_FORCE_OBJECT);

这会给你:

{
    "0": 2,
    "1": 0,
    "2": 4,
    "3": 1.5
}

在此处阅读更多内容:http://php.net/manual/en/function.json-encode.php

为这样的事情构建自己的编码器/解码器很少是个好主意。它通常变得相当复杂,并且您将花费大部分时间来理清错误并陷入边缘情况。阅读本机功能最好。它们已经过多年的尝试和测试,并且在性能方面往往要好得多。

答案 1 :(得分:0)

虽然我同意json_encode是生成JSON最好的解决方案。要生成一个漂亮的逗号分隔输出,您可以使用implode函数。

在数组中设置元素,例如:

$data = array('"1":0', '"2":4', '"3":1.5');

然后像这样使用implode

$output = implode(',', $data);

这将为您提供数组中数据元素的输出作为逗号分隔列表

答案 2 :(得分:0)

mousemove

因此,在循环之前创建数组,并在循环之后对该数组进行编码,将元素添加到循环内的数组是可以的。 -Mr_KoKa @ LinusTechTips.com