[解決済み] JavaScriptでjson-objectのキーを取得する [重複].
質問
私はJavaScriptでjsonオブジェクトを持っており、その中で使用されているキーを取得したい。私のJavaScriptコードは次のようになります。
var jsonData = [{"person":"me","age":"30"},{"person":"you","age":"25"}];
そして、json-Arrayの最初のオブジェクトのキーである'person'と'age'を警告するループが欲しいのです。
どのように解決するのですか?
[あなたが持っているのはただのオブジェクトであり、"json-object" ではありません。 JSON はテキスト表記です。引用したのは、JavaScriptのコードで 配列の初期化子 と オブジェクトのイニシャライザー (別名、オブジェクト・リテラル構文")] があります。
ECMAScript5 の機能が利用可能であることを当てにできるのであれば
Object.keys
関数を使用して、オブジェクトのキー(プロパティ名)の配列を取得できます。すべてのモダンブラウザは
Object.keys
(があります(IE9+を含む)。
Object.keys(jsonData).forEach(function(key) {
var value = jsonData[key];
// ...
});
この回答の残りの部分は2011年に書かれたものです。今日の世界では、A) IE8 以前をサポートする必要がない限り、これをポリフィルする必要はありません (!) B) もしそうするなら、自分で書いたり SO の回答から取得した一回限りのものでそれを行うことはありません (そしておそらく 2011 年にはそうすべきでもなかったでしょう)。その場合、おそらくは
es5-shim
から、またはポリフィルを含むように設定できる Babel のようなトランスパイラ経由で(これは
es5-shim
).
2011年の回答の続きです。
古いブラウザにはそれがないことに注意してください。そうでない場合は、これは自分で供給できるもののひとつです。
if (typeof Object.keys !== "function") {
(function() {
var hasOwn = Object.prototype.hasOwnProperty;
Object.keys = Object_keys;
function Object_keys(obj) {
var keys = [], name;
for (name in obj) {
if (hasOwn.call(obj, name)) {
keys.push(name);
}
}
return keys;
}
})();
}
これは
for..in
ループ
(
詳細はこちら
) を使って、オブジェクトが持つすべてのプロパティ名をループしています。
Object.prototype.hasOwnProperty
を使用して、プロパティが継承されているのではなく、オブジェクトによって直接所有されていることをチェックします。
(自己実行関数なしでできたかもしれませんが、私は自分の関数が 名前を持つ であること、そして IE と互換性があることが望ましいのです。 は名前付きの関数式は使えません。 ということになります[まあ、よほど注意しなければなりませんが]。そのため、自己実行型関数は、関数宣言がグローバルシンボルを作成するのを避けるために存在します)。
関連
-
[解決済み] 正しいJSONコンテンツタイプは何ですか?
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] JSONでコメントを使用することはできますか?
-
[解決済み] cURLでJSONデータをPOSTするにはどうすればよいですか?
-
[解決済み] JavaScriptのオブジェクトをループスルーまたは列挙するにはどうすればよいですか?
-
[解決済み] JavaScriptのオブジェクトの配列からidでオブジェクトを検索する
-
[解決済み] jQueryでフォームデータをJavaScriptオブジェクトに変換する
-
[解決済み】JavaScriptの関数にデフォルトのパラメータ値を設定する
-
[解決済み】オブジェクトからプロパティを削除する(JavaScript)
-
[解決済み] <Enter>でjQuery UIダイアログを送信する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】JavaScriptのオブジェクトキーリストを取得する
-
[解決済み] 上級者向けJavaScript。この関数はなぜ括弧でくくられるのですか?重複
-
[解決済み] javascript の関数から `undefined` と `null` のどちらを返すのが良いのでしょうか?
-
[解決済み] JavaScriptで:hoverのCSSプロパティを変更する
-
[解決済み] CORS OriginヘッダーとCSRFトークンによるCSRF保護
-
[解決済み] モデルフェッチ時に1をtrueに、0をfalseに変換する方法
-
[解決済み] JavaScriptで長い配列を小さい配列に分割する方法
-
[解決済み] ドット記法の文字列を使用してオブジェクトの子プロパティにアクセスする [重複].
-
[解決済み] 料金制限のあるAPIを独自にDogfoodする
-
[解決済み] jqueryで部分文字列を作成する方法