【问题标题】:Trouble debugging a getJSON call调试 getJSON 调用时遇到问题
【发布时间】:2015-10-26 15:27:45
【问题描述】:

我有一个 Rails 应用程序,其中有一个返回 JSON 数据的控制器:

 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"

我怀疑我在这里遗漏了一些明显或微不足道的东西,或者我根本没有掌握这一点。

【问题讨论】:

  • 您似乎在迭代数据错误。您要检索data 的哪一部分?
  • 我在我看到的另一篇文章中添加了 for i 循环,以尝试确认我实际上是从我的 JSON 请求中获取数据。例如,我试图让 "status": "ok" 显示。我可以强制结果为 "status": "fail" 以确认它正在工作。
  • 那么您现在遇到的问题是什么?
  • 如果我添加 alert data.response.status 什么都不会发生。如果我的 JSON 实际上正在返回数据,那应该不起作用吗?
  • 如我所见,您有一个数组。做data[0].response.status

标签: jquery ruby-on-rails json


【解决方案1】:

我可以从您提到的data 的问题中看到,您的数组中有一个哈希。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-09
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-04
    相关资源
    最近更新 更多