0

私はJSONオブジェクトを持っています

var myJsonObj = {
                'key1' : {
                    'type' : 'key1 type',
                    'key1-1' : {
                        'type' : 'key1-1 type',
                        'data' : 'key1-1 value'
                    },
                    'key1-2' : {
                        'type' : 'key1-2 type',
                        'data' : 'key1-2 value'
                    },
                    'key1-3' : {
                        'type' : 'key1-3 type',
                        'key1-3-1' : {
                            'type' : 'key1-3-1 type',
                            'data' : 'key1-3-1 value'
                        },
                        'key1-3-2' : {
                            'type' : 'key1-3-2 type',
                            'data' : 'key1-3-1 value'
                        },
                        'key1-3-3': {
                            'type' : 'key1-3-3 type',
                            'key1-3-3-1' : {
                                'type' : 'key1-3-3-1 type',
                                'data' : 'key1-3-3-1 value'
                            },
                            'key1-3-3-2' : {
                                'type' : 'key1-3-3-2 type',
                                'data' : 'key1-3-3-2 value'
                            }
                        }
                    }
                }
            };

私はインデックスの配列を持っています:

var index = new Array('key1', 'key1-3', 'key1-3-3');

インデックス変数でインデックスがわかっている場合、myJsonObj からデータを取得するにはどうすればよいですか? の結果を取得したいmyJsonObj['key1']['key1-3']['key1-3-3']。出力を達成する方法は?

4

1 に答える 1

2

あなたはそれを行うことができます:

myJsonObj[ index[0] ][ index[1] ][ index[2] ]

または、可変数のレベルを許可する場合は、次のようにしますindex

var tmpObj = myJsonObj;
for (var i = 0; i < index.length; i++)
   tmpObj = tmpObj[index[i]];

既知の値で配列を初期化する際のベスト プラクティスは、角かっこの構文を使用することです。

var index = ['key1', 'key1-3', 'key1-3-3'];

また、JSON オブジェクトのようなものはありません

于 2013-07-04T12:19:53.993 に答える