在我的控制器中,如果我返回一个JSON响应,如:
return new JsonResponse(array('numberOfRatings' => count($ratingCollection), 'oldRating' => $oldRating));
返回的对象将包含以下数据:
protected 'data' => string '{"numberOfRatings":1,"oldRating":2}' (length=35)
但是当我尝试用jQuery.parseJson();
解析它时,它将返回一个jQuery无法解析它的异常。但是当我这样做时:
return new JsonResponse(json_encode(array('numberOfRatings' => count($ratingCollection), 'oldRating' => $oldRating)));
什么等于
return new Response(json_encode(array('numberOfRatings' => count($ratingCollection), 'oldRating' => $oldRating)));
parseJson()
方法效果很好。但我在这里的错误导致似乎JsonResponse
没用。
答案 0 :(得分:4)
当您使用JsonResponse
时,您不需要使用jQuery.parseJson()
,您获得的数据已经是javascript对象。
$.getJSON(your_url, function(data) {
// the data is already an object, don't need to parse it.
// var data = $.parseJSON(data);
// ...
});