将 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
)显示更短
我刚开始使用 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
)显示更短