Jquery render:json=>;结果显示为字符串

Jquery render:json=>;结果显示为字符串,jquery,ruby-on-rails,Jquery,Ruby On Rails,我在ruby中有一个哈希数组,我用render:json=>my_arr呈现它。然而,在我看来,我把它看作一个字符串,当我用jQuery.each对它进行迭代时,它一次只包含一个字符,而不是数组中的一个元素 在我的控制器中: logger.debug(my_arr) # prints [{"foo1"=>"bar1”},{“foo2”=>”bar2”}] render :json => my_arr 我认为: function query_facebook_for_roomm

我在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.
    });
}

这个昨天还有用,但由于某种原因现在坏了。我检查了以前的修订版,但现在也坏了。你知道我应该如何调试它吗?

也许你的返回值没有被解析为JSON。试试这个:

success: function(data){
  var parsed_data = $.parseJSON( data );
  jQuery.each( parsed_data, display_result );
}
或者尝试添加
dataType
选项,设置为“json”:


谢谢,这成功了!我认为render=>:json应该将其作为json发送到视图中?我相信这也取决于MIME类型,因此在某些地方它仍然可能出错。
$.ajax({
  ...
  dataType: 'json'
  ...
});