Json_编码php最后一个逗号
对于学校项目,我必须将数据库数据显示为有效的json文件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);
$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
,它同时输出一个关联数组和一个数字数组。