我想像下面这样用php编码函数获取json
<?php
require "../classes/database.php";
$database = new database();
header("content-type: application/json");
$result = $database->get_by_name($_POST['q']); //$_POST['searchValue']
echo '{"results":[';
if($result)
{
$i = 1;
while($row = mysql_fetch_array($result))
{
if(count($row) > 1)
{
echo json_encode(array('id'=>$i, 'name' => $row['name']));
echo ",";
}
else
{
echo json_encode(array('id'=>$i, 'name' => $row['name']));
}
$i++;
}
}
else
{
$value = "FALSE";
echo json_encode(array('id'=>1, 'name' => "")); // output the json code
}
echo "]}";
我希望输出的 json 是这样的
{"results":[{"id":1,"name":"name1"},{"id":2,"name":"name2"}]}
但是输出的json是这样的
{"results":[{"id":1,"name":"name1"},{"id":2,"name":"name2"},]}
当你意识到最后有逗号时,我想删除它以便它可以是正确的 json 语法,如果我删除了 echo ",";
当有多个结果时json 将像这样生成 {"results":[{"id":1,"name":"name1"}{"id":2,"name":"name2"}]}
而且那个语法也是错误的
希望大家明白我的意思,任何想法将不胜感激
最佳答案
如果我是你,我不会json_encode
每个单独的数组,而是将数组合并在一起,然后在最后json_encode
合并的数组。以下是使用 5.4's 的示例短数组语法:
$out = [];
while(...) {
$out[] = [ 'id' => $i, 'name' => $row['name'] ];
}
echo json_encode($out);
关于php - Json编码整个mysql结果集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7531965/