从获取的DB结果中删除生成的JSON字符串中的额外双引号

时间:2015-01-22 11:11:55

标签: php mysql json

我搜索过谷歌可能会回答我的问题,但后来我陷入了沉重的脑海。

我的查询中有一些JSON输出

$myQuery = "SELECT title, start FROM reserved_b";
$result = $mysqli->query($myQuery) or die($mysqli->error);
$data = array();
while ( $row = $result->fetch_assoc() ){
   $data[] = json_encode($row);
}

$json = json_encode($data);
echo $str = str_replace('\\', '', $json);

那么这就是结果

["{"title":"Wedding","start":"2015-01-29 00:00:00"}","{"title":"Gathering","start":"2015-01-23 01:00:00"}"]

我只想删除双引号,输出应该是这样的:

[{"title":"Wedding","start":"2015-01-29 00:00:00"},{"title":"Gathering","start":"2015-01-23 01:00:00"}]

有可能吗?

提前感谢您的回答。

1 个答案:

答案 0 :(得分:3)

不,不要使用字符串操作(str_replace)来解决此问题。你的JSON字符串构造不好的原因是因为你在循环中有一个多余/不需要的编码。

刚刚完成数组结构的创建,最后编码:

$myQuery = "SELECT title, start FROM reserved_b";
$result = $mysqli->query($myQuery) or die($mysqli->error);
$data = array();
while ( $row = $result->fetch_assoc() ){
    $data[] = $row; // just push it as an array
}
// then finally, encode in the end
$json = json_encode($data);
echo $json;