我正在使用cakephp来编写web服务。因此,为了响应json结果,我曾经_serialize,但是_serialize需要一个带有key =>的数组。值
return array(
'data' => $data,
'_serialize' => array('data'));
Restful client中的回复:
{
"data": [
{
"id": "1",
"title": "appt1",
"start": "2013-12-05 14:00:00",
"end": "2013-12-05 15:00:00",
"backgroundColor": "#00ff00",
"allDay": false
},
{
"id": "2",
"title": "appt2",
"start": "2013-12-05 15:00:00",
"end": "2013-12-05 17:00:00",
"backgroundColor": "#00ff00",
"allDay": false
},
{
"id": "3",
"title": "appt3",
"start": "2013-12-05 15:00:00",
"end": "2013-12-05 15:00:00",
"backgroundColor": "#ff00ff",
"allDay": false
}
]
}
问题:如何删除结果中的关键'数据',如:
[
{
"id": "1",
"title": "appt1",
"start": "2013-12-05 14:00:00",
"end": "2013-12-05 15:00:00",
"backgroundColor": "#00ff00",
"allDay": false
},
{
"id": "2",
"title": "appt2",
"start": "2013-12-05 15:00:00",
"end": "2013-12-05 17:00:00",
"backgroundColor": "#00ff00",
"allDay": false
},
{
"id": "3",
"title": "appt3",
"start": "2013-12-05 15:00:00",
"end": "2013-12-05 15:00:00",
"backgroundColor": "#ff00ff",
"allDay": false
}
]
答案 0 :(得分:0)
我在这里迟到了..但是无论如何,这就是你想要的:
$this->set([
'data' => $data,
'_serialize' => 'data',
]);
$this->RequestHandler->renderAs($this, 'json');
答案 1 :(得分:-1)
请记住,JSON只是PHP的一个字符串,因此您的字面答案是,如果您愿意,可以使用substr()
或preg_match()
。当然,这不是正确的做事方式。正确的方法是:
$data
分配给新变量瞧:
$data = json_decode('{
"data": [
{
"id": "1",
"title": "appt1",
"start": "2013-12-05 14:00:00",
"end": "2013-12-05 15:00:00",
"backgroundColor": "#00ff00",
"allDay": false
},
{
"id": "2",
"title": "appt2",
"start": "2013-12-05 15:00:00",
"end": "2013-12-05 17:00:00",
"backgroundColor": "#00ff00",
"allDay": false
},
{
"id": "3",
"title": "appt3",
"start": "2013-12-05 15:00:00",
"end": "2013-12-05 15:00:00",
"backgroundColor": "#ff00ff",
"allDay": false
}
]
}');
$data = json_encode($data['data']);
);