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[キー] 未定義を返します

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 に答える