将 Json 响应转换为 JQuery 中的 Obj (Symfony2)

Convert a Json response to Obj in JQuery (Symfony2)

我刚开始使用 AJAX 和 Json 当我的页面完成加载时,我正在创建一个对评论线程的调用 我的控制器 return Json 格式的对象数组 '[{"usr":"gigi","usrpic":"4993",..},{obj1},{obj2}]'

我的 Controller.php :

    //.. controller code (preparing results into $results an array of obj)
    $json = json_encode($results);
    /*var_dump($json);
    die();*/ // Problem 1
    $response = new \Symfony\Component\HttpFoundation\JsonResponse();
    return $response->setData(['comments'=> $json ]);

我的 JS:

$("document").ready(function(){ 
$.ajax({
        type:'GET',
        url:Routing.generate('get_comments',{id:$id} ),

        beforesend: function(){

        },
        success: function(data){
        console.log(data);
        $("#comid_1").before(data);
        /*var newList = JSON.parse(data);
          console.log(newList);
          $("#comid_1").before(newList);*/ // this gives me Uncaught SyntaxError: Unexpected token < (in console)


        }
    });

这是 jquery 控制台的屏幕截图 http://i.stack.imgur.com/X9rHr.jpg 首先,Json 有长度限制吗?!!
我怎样才能开始在 Jquery 中循环我的 Json 响应?

JsonResponse 正在为你做 json 序列化,所以你应该传递数组,而不是 json (这是一个字符串):

return new \Symfony\Component\HttpFoundation\JsonResponse(['comments' => $results]);

所以基本上跳过 json_encode 它应该可以工作 - 现在您的服务器的响应是一个字符串,而不是 json。 json 长度没有限制,这只是你的 firebug(或你正在使用的其他工具)制作字符串(因为现在你得到 string 而不是 json)显示更短