在不知道名称的情况下检索json元素

时间:2012-07-19 07:22:52

标签: javascript json

我有一个像这样的JSON对象:

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

alert(saveChamp.champ1.type);

在此示例中,警报显示“radio”,这是正常的。

如果我不知道champ1或champ2用于检索“类型”或“大小”,我该怎么办?我动态创建了json,所以我无法知道对象的所有名称。

谢谢!

1 个答案:

答案 0 :(得分:3)

您可以使用for ... in语法检索对象的所有元素,这些元素的名称在您之前不知道(see 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 );
  }
}