Json_编码php最后一个逗号

Json_编码php最后一个逗号,php,mysql,json,Php,Mysql,Json,对于学校项目,我必须将数据库数据显示为有效的json文件 $result = mysqli_query($mysqli, "SELECT * FROM `csvdata`"); echo "{ \"films\" : ["; while ($row = mysqli_fetch_array($result)) { $jsonResult = json_encode($row);

对于学校项目,我必须将数据库数据显示为有效的json文件

            $result = mysqli_query($mysqli, "SELECT * FROM `csvdata`");

            echo "{ \"films\" : [";
            while ($row = mysqli_fetch_array($result)) {
                $jsonResult = json_encode($row);
                echo $jsonResult;
                echo ",";   
            }
                echo "]}";
我得到的结果是:

{
    "films": [
        {
            "0": "Man on fire",
            "titel": "Man on fire",
            "1": "Actie",
            "genre": "Actie"
        },
        {
            "0": "Dumb and Dumberer",
            "titel": "Dumb and Dumberer",
            "1": "Comedy",
            "genre": "Comedy"
        },
        {
            "0": "DefQon 2014",
            "titel": "DefQon 2014",
            "1": "Muziek",
            "genre": "Muziek"
        },

    ]
}

现在我的问题是,如何删除最后一个逗号,我找不到。所有数据都会告诉数据两次,我也不知道如何避免这种情况。

一个好方法是,不要在写入每条记录后,而是在每条记录前加逗号


然后,您所要做的就是添加一个if语句,该语句不输出第一行的逗号。

json\u encode
处理整个过程-构建一个数据数组,并在此基础上使用
json\u encode

$result = mysqli_query($mysqli, "SELECT * FROM `csvdata`");

$response = array();
$response['films'] = array();

while ($row = mysqli_fetch_array($result)) {
  $response['films'][] = $row;
}

echo json_encode($response);

好了,JSON数组中的尾随逗号是可以的,您不应该在意它。将整个结果收集到一个PHP数组中,然后在它构建之后将其全部编码。@Necto不,它不可以。它是无效的,大多数库都会失败——包括PHP的
json\u decode
。太好了,这很有帮助!:)现在我只有两倍的数据,我不知道它从哪里来。它不在我的数据库中。。“0”数据和“1”data@Patrick使用
mysqli\u-fetch\u-assoc
而不是
mysqli\u-fetch\u-array
来修复该问题,或者执行
mysqli\u-fetch\u-array($result,mysqli\u-assoc)
。默认行为是
MYSQLI\u all
,它同时输出一个关联数组和一个数字数组。