2015-10-26 45 views
0

我有一个Rails应用程序在那里我有一个控制器返回JSON数据:故障调试的getJSON呼叫

respond_to do |format| 
    format.html { render :html => data } 
    format.json { render :json => data.to_json } 
end 

如果我通过浏览器一切都很好加载此。

我有一个简单的表单,我试图验证从JSON查找输入的数据。现在我坚持让JSON调用工作。

这里是我的JS(咖啡脚本):

$(document).ready -> 
    $('#validate-data').click -> 
    alert "hello!" 
    $.getJSON '/mycontroller/data/myparameter', (data) -> 
     obj = data 
     msg = [] 
     for i of obj 
     msg.push i + ' = ' + obj[i] 
     alert msg.join('\n') 
     return 
    return 
    return 

当我点击我的验证按钮,我有点暂停后的hello!弹出然后我得到一个弹出与0 = [object Object]

我的HTTP调用结果数据是这样的:

[ { "query": "myparameter", "response": { "status": "ok", "err": [], etc... 

我得到的印象是,之后的getJSON调用数据进行分析,你可能只需要调用alert data.response.status,你会得到一个弹出"ok"

我怀疑我错过了一些明显或微不足道的东西,或者我根本就没有把握。

+0

看来你正在迭代数据错误。你想要检索哪部分数据? –

+0

我补充说,从我看到的另一个帖子循环尝试,并确认我实际上从我的JSON请求中获取数据。例如,我试图获取“状态”:“ok”来显示。我可以强制结果为“状态”:“失败”以确认它正在工作。 –

+0

那你现在有什么问题? –

回答

1

我可以从你提到的问题data看到,你在数组中有一个散列。

[ { "query": "myparameter", "response": { "status": "ok", "err": [ 

您正在访问它错误,这就是为什么你没有得到你想要的输出。您必须执行data[0].response.status,这是您要访问的结果,如您在comment中所述。