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

Javascript 在不知道名称的情况下检索json元素,javascript,json,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对象,如下所示:

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

alert(saveChamp.champ1.type);
在本例中,警报显示“radio”,这是正常的

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


谢谢你

您可以将
用于。。。在
语法中,检索对象的所有元素,在()中您不知道该对象的名称

注意
hasOwnProperty()
子句()。这可以防止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 );
  }
}

例如,我希望检索json中第二个对象的类型。类似于saveChamp[0]的东西。键入,但它可以^@ClémentAndraud您还可以首先列出数组中的所有一级属性(使用示例中的
el
变量),然后从该数组中取出第二个元素以检索属性。谢谢,还有我们的问题,如果我想创建类似“champ2”的对齐方式:{“type”:3,“size”:4,“null”:null}在saveChamp中?@ClémentAndraud要修改旧属性还是添加新属性?我不明白。@ClémentAndraud那么
saveChamp['newProp']={…}
怎么样?如果要保持顺序,可能最好使用数组而不是对象。