-1

假设我有一个这样的 json 文件:

{
  "content": {
    "statistics": [
      {
        "key": "aaaa",
        "value": {
          "hits": 0,
          "misses": 0,
          "errors": 0,
          "hitRate": 0.0
        }
      },
      {
        "key": "bbbb",
        "value": {
          "hits": 0,
          "misses": 0,
          "errors": 0,
          "hitRate": 0.0
        }
      },
      {
        "key": "cccc",
        "value": {
          "hits": 0,
          "misses": 0,
          "errors": 0,
          "hitRate": 0.0
        }
      }
    ],
    "enabled": false
  },
  "meta": {
    "httpCode": 000
  }
}

并使用这个 ajax:

$.ajax({
    type: "GET",
    url: url,
    beforeSend: function(x) {
        if (x && x.overrideMimeType) {
            x.overrideMimeType("application/j-son;charset=UTF-8");
        }
    },
    dataType: "json",
    success: function(data) {
        console.log(data);
        var key=data["key"];
        console.log(key);
    }
});

但是上面的代码不起作用,它不会从 json 返回键。如何显示键、值、命中等的所有值?非常感谢您的帮助

4

1 回答 1

1

问题在于,它key存在于层次结构中的不同级别,而不是您正在检查的级别。

给定data的是您的 JSON 对象,key存在于data.content.statistics[index].key. 因此,要打印出每个键,您需要以下内容:

for (var i = 0; i < data.content.statistics.length; i++) {
    var key = data.content.statistics[i].key;
    console.log(key);
}

然后,您可以按如下方式访问每个值:

for (var i = 0; i < data.content.statistics.length; i++) {
    var key = data.content.statistics[i].key;
    var val = data.content.statistics[i].value;

    console.log("Hits: " + val.hits);
    console.log("Misses: " + val.misses);
    console.log("Errors: " + val.errors);
    console.log("Hit Rate: " + val.hitRate);
}
于 2013-08-22T13:34:50.593 回答