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

Retrieve a json element without knowing the name

本文关键字:检索 json 元素 情况下 不知道      更新时间:2023-12-13

我有一个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,所以我不能知道所有对象的名称。

谢谢!

您可以使用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 );
  }
}