1

私はこのようなJSONオブジェクトを持っています:

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

alert(saveChamp.champ1.type);

この例では、アラートは「ラジオ」を表示しますが、これは正常です。

「タイプ」または「サイズ」を取得するためのchamp1またはchamp2がわからない場合はどうすればよいですか?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 に答える