我有这个数组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"
}
]}
我怎么能得到钥匙的名字? (nombre,动物,品种,注意) 我试着用这种方式,但它不起作用:
for (key in datos) {
HtmlT += "<td>" + datos.animales[key]+ "</td>"; // it should return nombre
}
datos.animales [key]返回undefind
答案 0 :(得分: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垫片:
dataos.animales.forEach(function(entry) {
var key;
for (key in entry) {
// Here, `key` will have the names `"nombre"`, `"animal"`, etc.
}
});
请注意,所有条目的属性名称可能不同(当然,如果您的数据定义方式可能如此)。
答案 1 :(得分:0)
试试这个:
for (key in datos.animales[0]) { HtmlT += "" + datos.animales[0][key]+ ""; }
这是您正在寻找的实际元素。
您可能希望遍历数据阵列
答案 2 :(得分:0)
您可以尝试:
for(var index in datos.animales){
var animal = datos.animales[i];
for(var prop in animal){
console.log(prop+":"+animal[prop]);
}
}
答案 3 :(得分:-1)
尝试
for (key in datos) {
for (animal in datos[key]) {
HtmlT+= "\"" + animal + "\"";
}
}
在执行for-each类型循环时,key
是实际键,object[key]
将返回值。