嗨,我有一個小問題,我找不出來。我使用ZendFramework和Apigility編寫RPC服務。響應必須是一個json數組。接下來是所有內容協商代碼。Zend rpc json return array
'controllers' => array(
'NmdaWebApi\\V1\\Rpc\\Hola\\Controller' => 'Json',
'accept_whitelist' => array(
'NmdaWebApi\\V1\\Rpc\\Hola\\Controller' => array(
0 => 'application/vnd.nmda-web-api.v1+json',
1 => 'application/json',
2 => 'application/*+json',
),
'content_type_whitelist' => array(
'NmdaWebApi\\V1\\Rpc\\Hola\\Controller' => array(
0 => 'application/json',
),
這是我怎麼有控制器
class HolaController extends AbstractActionController{
public function holaAction(){
return array(1,2,3,4,5);}}
這裏是返回的JSON。
{"0":1,"1":2,"2":3,"3":4,"4":5}
我得到這個列表,我想要一個數組。這是另一個例子。
return array(1,2,3,4,array(5,6,7));
{"0":1,"1":2,"2":3,"3":4,"4":[5,6,7]}
有人可以解釋我如何避免這種情況嗎?
Edit_1
我想出了一個解決方法。使用HalJson修復了這個問題。但我仍然不明白爲什麼它不能與普通的Json一起工作。
'controllers' => array(
'NmdaWebApi\\V1\\Rpc\\Hola\\Controller' => 'HalJson',
如果適合你嘗試返回數組('ids'=> array(1,2,3,4,5)); 比你會有你的陣列,但在關鍵「ids」 – tasmaniski 2015-03-02 22:14:28
嗯不是我正在尋找什麼。 – 2015-03-02 22:18:52