0

我有这个数组Json,我怎么能得到对象的名字?这是我的数组 json:

var datos =  {"animales":[
{
    "nombre":"Lucy",
    "animal":"Cat",
    "breed":"American Shorthair",
    "note":"She raised me"
},
{
    "nombre":"Homer",
    "animal":"Cat",
    "breed":"unknown",
    "note":"Named after a world-famous bassoonist"
},
{
    "nombre":"Muchacha",
    "animal":"Dog",
        "breed":"mutt",
        "note":"One of the ugliest dogs I’ve ever met"
    }
]}

我怎么能得到钥匙的名字?(名词,动物,品种,注意)我正在尝试这种方式,但它不起作用:

for (key in datos) {
                HtmlT += "<td>" + datos.animales[key]+ "</td>"; // it should return nombre
            }

datos.animales[key] 返回 undefind

4

4 回答 4

1

您列出的名称不是 的属性datos,它们是animales数组中条目的属性。因此,您必须遍历animales数组,并且对于每个条目,使用for-in来遍历该条目的属性名称。

var animales, index, entry;

animales = datos.animales;
for (index = 0; index < animales.length; ++index) {
    entry = animales[index];
    for (key in entry) {
        // Here, `key` will have the names `"nombre"`, `"animal"`, etc.
    }
}

或者在启用 ES5 的环境中,或者如果您使用 ES5 shim:

dataos.animales.forEach(function(entry) {
    var key;

    for (key in entry) {
        // Here, `key` will have the names `"nombre"`, `"animal"`, etc.
    }
});

请注意,所有条目的属性名称可能不同(当然,如果您的数据是这样定义的,它们可能是相同的)。

于 2013-03-05T12:49:02.020 回答
0

你可以试试 :

for(var index in datos.animales){
    var animal = datos.animales[i];
    for(var prop in animal){
      console.log(prop+":"+animal[prop]);
    }
}
于 2013-03-05T12:53:11.110 回答
0

尝试这个:

for (key in datos.animales[0]) { HtmlT += "" + datos.animales[0][key]+ ""; }

这是您正在寻找的实际元素。

您可能想要遍历 datos 数组

于 2013-03-05T12:49:51.633 回答
-1

尝试

for (key in datos) {
  for (animal in datos[key]) {
    HtmlT+= "\"" + animal + "\"";
  }
}

在执行 for-each 类型循环时,这key是实际的键object[key]并将返回值。

于 2013-03-05T12:49:23.847 回答