我刚刚开始使用AJAX和Json 我在完成加载时在我的页面上创建了一个评论主题的调用 我的控制器以Json格式返回一个对象数组 '[{ “USR”: “吉吉”, “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响应?
答案 0 :(得分:0)
JsonResponse
正在为你做json
序列化,所以你应该传递数组,而不是json(这是一个字符串):
return new \Symfony\Component\HttpFoundation\JsonResponse(['comments' => $results]);
所以基本上跳过json_encode
它应该可行 - 现在你的服务器的响应是一个字符串,而不是一个json。
没有json长度的限制,这只是你的firebug(或你正在使用的其他工具)制作字符串(因为现在你得到string
而不是json
)显示更短