我知道有很多关于json的问题,但他们没有回答我的问题(或者我找不到任何东西,这对我有帮助)。 我的Symfony2控制器的一部分,它向我发送数据。
return $this->createResponse(array(
'result' => $users
));
die();
}
/**
* Interni pomocna funkce na vytvareni json odpovedi
* @param unknown $array
* @return \Symfony\Component\HttpFoundation\Response
*/
protected function createResponse($array = array()) {
return new Response(
json_encode($array),
200,
array(
header('Content-type: application/json')
)
);
}
获取JSON数据的Javascript函数。
function getUsers(date_from, date_to) {
alert(date_from+" "+date_to);
var url = "{{ path('vetkomdochazkaBundle_apiGetUsers') }}";
$.post(url, JSON.stringify([date_from,date_to]), function(data) {
markUsers(data['result']);
}, 'json');
};
在localhost(wamp服务器)上一切正常,我获取数据并解析它,以便我可以将它用作数组。但是当我在php5.3服务器上运行时,我得到正确的数据(我可以用JSON.stringify编写它),但是我不能像在localhost上那样使用它们(我不能使用alert(data ['result' ]),它只写对象。
我做错了什么?
答案 0 :(得分:0)
检查PHP VERSION JSON功能是否为PHP 5> = 5.2.0,
答案 1 :(得分:0)
Symfony有一个JsonResponse
对象,可能会使您的代码更清洁,并可以解决您的问题。另外,取出模具
/**
* Interni pomocna funkce na vytvareni json odpovedi
* @param unknown $array
* @return \Symfony\Component\HttpFoundation\JsonResponse
*/
protected function createResponse($array = array()) {
return new JsonResponse(
$array,
200
);
}
否则,您需要设置标题,如此
return new Response(
json_encode($array),
200,
array('Content-type', 'application/json')
);