1

我有一个这样的 JSON 对象:

var saveChamp = {
      "champ1": {"type": "radio", "size": 4, "null": null},
      "champ2": {"type": 3, "size": 4, "null": null}
    };

alert(saveChamp.champ1.type);

在这个例子中,alert 显示“radio”,这是正常的。

如果我不知道 champ1 或 champ2 来检索“type”或“size”怎么办?我动态创建我的 json,所以我不知道我的对象的所有名称。

谢谢 !

4

1 回答 1

3

您可以使用for ... in语法来检索之前不知道其名称的对象的所有元素(请参阅 MDN)。

请注意hasOwnProperty()子句 ( MDN )。这可以防止 JavaScript 在原型链中上升,并且只对对象本身的属性起作用。所以你不会得到Object例如的默认方法。

var saveChamp = {
      "champ1": {"type": "radio", "size": 4, "null": null},
      "champ2": {"type": 3, "size": 4, "null": null}
    };

var el;
for( el in saveChamp ) {
  if( saveChamp.hasOwnProperty( el ) ) {
    alert( saveChamp[el].type );
  }
}
于 2012-07-19T07:24:46.877 回答