0

在我的控制器中,如果我返回 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是无用的。

4

1 回答 1

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); 
   // ...
});
于 2013-01-29T13:25:13.107 回答