我有一个php文件,我输出json。
<?php
header('Content-Type: application/json');
?>
var data = {
"cars": [
<?php foreach ($runshowcars as $rowscar):;?>
{
"id":"<?php echo $rowscar['id'] ?>",
"name":"<?php echo $rowscar['name'] ?>"
}
],
"boats": [
<?php foreach ($runshowboats as $rowsboat):;?>
{
"id":"<?php echo $rowsboat['id'] ?>",
"name":"<?php echo $rowsboat['name'] ?>"
}
],
};
但是输出看起来像这样。
var data = {
"cars": [
{
"id":"1",
"name":"Ford"
}
,{
"id":"2",
"name":"Honda"
}
]
};
我希望它看起来像这样。
var data = {"cars": [{"id":"1","name":"Ford"},{"id":"2","name":"Honda"}]};
我发现这样做的唯一方法是从我的php文件中删除空格,这显然不是一个理想的解决方案,因为它很难维护。
如何在这里删除所有空格?
我见过很多像这样的问题How to minify php page html output?但是我不能在这里工作,因为我的数据不在变量中?
答案 0 :(得分:7)
为什么不将数据收集到数组中并将其编码为json。
像这样:
$data=array('cars'=>$runshowcars, 'boats'=>$runshowboats);
print json_encode($data);
(否则你返回javascript,而不是json。至少如果你在var data =
部分前面加上结果。)
答案 1 :(得分:3)
只需创建一个多维关联数组并使用json_encode
答案 2 :(得分:1)
您可以删除<?php ?>
之外的所有内容:
<?php
header('...') ;
echo 'var data = {' ;
echo '"cars": [' ;
foreach ($runshowcars as $rowscar)
{
echo '{' ;
echo '"id":"'.$rowscar['id']?'",' ;
echo '"name":"'.$rowscar['name'] ;
echo '}' ;
}
echo '],' ;
...
?>
或者你可以尝试json_encode php功能(可能是更好的方式):
<?php
$data = Array('cars'=>$runshowcars,'boats'=>$runshowboats) ;
echo 'var data = '.json_encode($data) ;
?>