我在ruby中使用render :json => my_arr
渲染了一系列哈希值。但是,在我看来,我把它看作一个字符串,当我用jQuery.each迭代它时,它一次包含一个字符而不是一次一个元素。
在我的控制器中:
logger.debug(my_arr) # prints [{"foo1"=>"bar1”},{“foo2”=>”bar2”}]
render :json => my_arr
在我看来:
function query_facebook_for_roommate(){
$.ajax({
type: "GET",
url: "send_to_my_controller",
success: function(data){
//I see data: "[{"foo1"=>"bar1”},{“foo2”=>”bar2”}]" in the chrome debugger
jQuery.each(data, display_result)
//This iterates over each character, eg: [, {, " etc. instead of each element {"foo1"=>"bar"}, {"foo2"=>"bar2"} etc.
});
}
这在昨天有效,但由于某种原因现在已经坏了。我查看了之前的修订版,但现在它们也被破坏了。关于我应该如何调试它的任何想法?
答案 0 :(得分:2)
也许您的返回值未被解析为JSON。试试这个:
success: function(data){
var parsed_data = $.parseJSON( data );
jQuery.each( parsed_data, display_result );
}
或尝试添加dataType
选项,设置为“json”:
$.ajax({
...
dataType: 'json'
...
});