从带有json输出的回显字符串中删除php中的最后一个逗号
我需要样本格式的json输出:从带有json输出的回显字符串中删除php中的最后一个逗号,php,implode,Php,Implode,我需要样本格式的json输出: [ { "date": "2013-04-01 17:30:00", "type": "meeting", "title": "Test Last Year", "description": "Lorem Ipsum dolor set", "url": "http://test.com?id=1" }, { "date": "2013-04-02 17:30:00", "type": "meeting", "title": "Test Las
[ { "date": "2013-04-01 17:30:00", "type": "meeting", "title": "Test Last Year", "description": "Lorem Ipsum dolor set", "url": "http://test.com?id=1" }, { "date": "2013-04-02 17:30:00", "type": "meeting", "title": "Test Last Year", "description": "Lorem Ipsum dolor set", "url": "http://test.com?id=2" } }]
最后一个逗号需要去掉:},}]
创建一个json输出,没有错误。我正在使用php,下面是我的php代码的相关部分:稍微更改为只显示相关部分
echo '[';
foreach ($enquirydates as $edate)
{
if ($x <= $firstunixdate )//first follow-up
{
echo ' { "date": "'; echo date("Y-m-d ", $firstunixdate); echo '", "type": "Follow-up", "title": "Student Enquiry '; echo ' Follow-up (First Follow-Up)", "description": "First Student Enquiry followup due..", "url": "http://test.com/admin/followup.php?time=';echo $unixenquirydate; echo '" },';
}
elseif ($x <= $secondunixdate)//second followup
{
echo ' { "date": "'; echo date("Y-m-d ",$secondunixdate); echo '", "type": "Follow-up", "title": "Student Enquiry '; echo ' Follow-up (Second Follow-Up)", "description": "Second Student Enquiry followup due..", "url": "http://test.com/admin/followup.php?time=';echo $unixenquirydate; echo '"},';
}
elseif ($x > $finalunixdate)//enquiry open for more than 25 days
{
echo ' { "date": "'; echo date("Y-m-d ",$x); echo '", "type": "Follow-up", "title": "Student Enquiry '; echo ' open for more than 25 days", "description": "Second Student Enquiry followup due..", "url": "http://test.com/admin/followup.php?time=';echo $unixenquirydate; echo '"},';
}//end if
}
echo ']';
我需要删除foreach循环中的最后一个逗号。我知道在php中,内爆可以用来删除结束字符串。但我不知道如何在这种情况下使用它,因为它包含多个echo语句
请求帮助..这不是生成JSON的方法 创建一个数组并使用json_encode函数将其转换为json字符串 但如果你坚持按自己的方式行事:
$json = Array();
foreach($enquirydates as $edate) {
if($x <= $firstunixdate) { //first follow-up
$json[] = '{"date":"'.date("Y-m-d", $firstunixdate).'","type":"Follow-up","title":"Student Enquiry Follow-up (First Follow-Up)","description":"First Student Enquiry followup due..","url":"http://test.com/admin/followup.php?time='.$unixenquirydate.'"}';
}
else if($x <= $secondunixdate) { //second followup
$json[] = '{"date":"'.date("Y-m-d",$secondunixdate).'","type":"Follow-up","title":"Student Enquiry Follow-up (Second Follow-Up)","description":"Second Student Enquiry followup due..","url":"http://test.com/admin/followup.php?time='.$unixenquirydate.'"}';
}
else if($x > $finalunixdate) { //enquiry open for more than 25 days
$json[] = '{"date":"'.date("Y-m-d",$x).'","type":"Follow-up","title":"Student Enquiry open for more than 25 days","description":"Second Student Enquiry followup due..","url":"http://test.com/admin/followup.php?time='.$unixenquirydate.'"}';
} //end if
}
echo '['.implode(',', $json).']';
您不应该手工构建JSON,而应该首先构建一个数组,并使用$JSON=JSON\u encode$array来获取有效的JSON字符串。如果它看起来太难而且容易出错。。可能是的。已经有足够多的损坏的JSON生成器。我正在获得所需的输出,其中包括最后一个逗号。我需要删除逗号…在这种情况下如何使用内爆,而不考虑JSON部分。抱歉,没有获得所需的输出:[2013-12-01,类型:跟进,标题:学生查询开放超过25天,描述:第二次学生查询跟进到期,url:},2013-12-01,类型:跟进,标题:学生查询跟进第一次跟进,描述:第一次学生查询跟进到期,url:},[{日期:,{日期:]逗号仍然保留,接近结尾,[{date:,{date:]它不起作用..日期部分从开始剥离并放在结尾,如下所示,以及逗号:,[{date:,{date:]我得到所需的输出,其中包括最后一个逗号..我需要删除逗号…在这种情况下如何使用内爆,而不考虑json部分。echo'['.rtrimpolde',',$json','.]';我不需要[]部分,因为我之前已经硬编码了它。所以我尝试了echo'rtrimpolde',',$json',';仍然得到,{date:,{date:]接近结尾…逗号仍然存在,日期已经移到结尾???