我正在尝试显示JSON数据,但是关键值是动态的,它从一个POST请求到另一个POST请求,我的数据层次结构如图所示:

javascript - 使用JavaScript遍历动态JSON数据-LMLPHP

这是我正在运行的代码的一部分,谁能建议我如何显示JSON数据,其中在Redbox中显示的键将针对每个POST请求而更改

$.ajax({
  type: "POST",
  url: "/",
  dataType:'json',
  data : { 'perfid': valueOne, 'hostname': $("#host").val(), 'iteration': valueThree},
  success: function(data) {
    $('#img1').hide();
    var k = data[$("#host").val()].iscsi_lif.result.sectoutput.sect.length;
    for(var i = 0; i < k; i++) {
                var obj = k[i];
                console.log(obj);
                var iscsi =  parseInt(data[$("#host").val()].iscsi_lif.result.sectoutput.sect.obj.avg_latency);
console.log(iscsi);
             }


在摘要上方运行时,出现以下错误消息:

数据[$(....)。val(...)]。iscsi_lif.result.sectoutput.sect未定义

最佳答案

您可以使用“ for in”循环来遍历对象的键,而不必指定键名。

for( var key in myObject){
  myValue = myObject[key];
  // key will be your dynamically created keyname
}


因此,您的代码可能类似于以下内容:

...
success: function(data) {
  $('#img1').hide();
  var obj = data[$("#host").val()].iscsi_lif.result.sectoutput.sect;
  for(var key in obj) {
    if(obj.hasOwnProperty(key)){
      var iscsi = parseInt(obj[key].avg_latency);
      console.log(iscsi);
    }
  }
}

10-04 22:12
查看更多