Javascript 将JSON与jRails一起使用
我目前正试图通过jrail在我的应用程序中使用AJAX。我试图从我的控制器返回一个JSON对象,然后在Javascript中解析它。我正在使用json2.js进行解析 以下是我目前拥有的代码:Javascript 将JSON与jRails一起使用,javascript,jquery,ruby-on-rails,json,jrails,Javascript,Jquery,Ruby On Rails,Json,Jrails,我目前正试图通过jrail在我的应用程序中使用AJAX。我试图从我的控制器返回一个JSON对象,然后在Javascript中解析它。我正在使用json2.js进行解析 以下是我目前拥有的代码: function getSomething() { $.ajax({ type: "GET", url: "map/testjson", success: function(data) { var myData = JSON.
function getSomething()
{
$.ajax({
type: "GET",
url: "map/testjson",
success: function(data) {
var myData = JSON.parse(data[0]);
window.alert(myData.login);
}
});
}
在控制器中:
class Map::MapController < ApplicationController
def index
end
def testjson
@message = User.find(:all)
ActiveRecord::Base.include_root_in_json = false
respond_to do |w|
w.json { render :json => @message.to_json }
end
end
end
class Map::MapController@message.to_json}
终止
终止
终止
window.alert只显示“未定义”(不带tics)
但是,如果我将javascript更改为window.alert(data)(控制器返回的原始对象),我会得到:
[{“salt”:“aSalt”,“name”:“,
“创建时间”:“2010-03-15T02:34:25Z”,“记住令牌到期时间”:
空,“加密密码”:“aPassword”,
“更新时间”:“2010-03-15T02:34:25Z”,“id”:1,“记住令牌”:空,
“登录”:“ZGRIG2”,“电子邮件”:zach@zach.com“}]
如果我看得对的话,这看起来像一个大小为1的数组,但我已经尝试了我能想到的数据对象上的几乎所有JSON.parse组合,但似乎没有任何效果
你知道我做错了什么吗
编辑
如果Users表中有多行,这似乎可以正常工作。我可以看出代码中有两个问题 最好使用$.getJSON来执行JSON请求
希望有帮助。当有多行时,您需要处理的是json格式的对象字符串,而不是json对象表示。 真的对不起我英语,我想更好的解释 如果@message是一个空对象,因为没有任何消息,对json的渲染不会产生任何结果,当你在JS中时,你会遇到问题,因为你没有任何响应。您必须检查@message对象。也许你能做到: w、 json{render:json=>(@message.nil?)?0:@checkpoint}
然后,在回调函数中,您必须检查您的数据响应是“0”(如字符串)还是一个对象。Zachary,您使用的是什么版本的jQuery?jRails附带的似乎是1.3.2。我确实删除了“.to_json”部分,但它应该是可选的。处理每个名称-值对的显式回调函数也应该是可选的……奇怪的是,当有多行被呈现为json时,我的代码工作正常。