【问题标题】:Using AJAX to get JSON and use response data [closed]使用 AJAX 获取 JSON 并使用响应数据 [关闭]
【发布时间】:2015-07-01 17:08:25
【问题描述】:

这是我的 AJAX...

$.ajax({
  url: "../getSynd.php",
  dataType:"json",
  success: function(jsVar){
    document.write(jsVar['sysinfo'][0]);
    syndStatus("canvas1", "first server name", "76","red");
    syndStatus("canvas2", "second server name", "1.2423","green");
  }
});

而我来自 getSynd.php 的 JSON 如下...

[{"sysinfo":"server1","result":"1.17805935"},{"sysinfo":"server2","result":"2069.59799893"}]

如何从 jsVar 中获取 sysinfo/result?

编辑: 我想通了,谢谢大家!

$.ajax({
  url: "../getSynd.php",
  dataType:"json",
  success: function(jsVar){

    syndStatus("canvas1", jsVar[0]['sysinfo'], jsVar[0]['result']);
    syndStatus("canvas1", jsVar[1]['sysinfo'], jsVar[1]['result']);
  }
});

【问题讨论】:

  • 您需要对处理 AJAX 和 JSON 响应进行更多研究。您使用的语言(“保存到 JavaScript 变量”)表明了这一点。特别是查看 jQuery 的 $.getJSON 和原生的 JSON.parse()
  • 我试过了,结果就是这样。感谢您的“有用”回复。
  • 使用document.write(jsVar[0]['sysinfo']);

标签: javascript jquery ajax json


【解决方案1】:

由于您已经在 ajax 中使用 dataType 参数,因此您将获得已经解析为 javascript 变量的响应。您只需要在 ajax 调用的成功回调中捕获它,如下所示:

$.ajax({
    url: '...',
    dataType: 'json',
    success: function(jsVar) {
       //jsVar will be the javascript array
    }
});

【讨论】:

  • 没有。 dataType:"json", 会让 jQuery 在给你数据之前解析它。
  • 我对成功函数部分的工作原理感到困惑......数据是否存储在 jsVar 中?我对网络和 javascript 非常陌生。
  • yes... 当 ajax 调用成功返回且没有任何错误(如网络问题、超时等)时,将自动调用成功回调,并将来自 ajax 的响应保存在变量 'jsVar' 中(你可以随意命名)。
  • 好的,那我怎么把jsVar中保存的数据拉出来……看起来像“[object Object],[object Object]”
  • 您正在尝试document.write 数组。您的数组包含对象,因此您看到 [object Object] ... 使用任何循环结构迭代数组,并在每次迭代中访问当前对象的属性,如 myObj.sysinfo、myObj.result(myObj 是当前对象循环的迭代)。不能再详细了。尝试一下。 Google 是您的朋友。
猜你喜欢
  • 2012-10-02
  • 1970-01-01
  • 2018-08-20
  • 2012-12-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多