我正在创建这个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";
}
?>
答案 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