2017-05-21 4 views
0

テキストファイルとして読み込んで保存する必要があるjsonファイルがたくさんあります。問題は、各jsonファイル内のキーの名前が異なることです。私は、キー名を取得する機能Object.keysの使用を見て、しかし、例えば、そのようなファイルにしました:JSONオブジェクトのキー名の取得と使用

{ 
     "mainKey1" : 
     [ 
      { 
       "subKey1" : "Value 1", 
       "subKey2" : "Value 2", 
       "subKey3" : "Value 3" 
      }, 
      { 
       "subKey1" : "Value 1", 
       "subKey2" : "Value 2", 
       "subKey3" : "Value 3" 
      } 
     ], 

     "mainKey2" : 
     [ 
      { 
       "subKey1" : "Value 1", 
       "subKey2" : "Value 2", 
       "subKey3" : "Value 3" 
      }, 
      { 
       "subKey1" : "Value 1", 
       "subKey2" : "Value 2", 
       "subKey3" : "Value 3" 
      } 
     ] 
    } 

がどのように私は名前を「mainKey1」、「mainKey2」を得ることができる、と

最後に、これらのキー名を取得した後、対応する "Value1"、 "Value2"、 "Value3"をどのように読み取ることができますか。

事前に感謝します!

+0

JSON.parseを使用しない理由https://www.w3schools.com/js/js_json_parse.asp? –

+0

あなたの質問にはjsonファイルの読み書きが含まれていますか?オブジェクトのキー/値を取得することについてのちょっと参考にしてください。 –

答えて

1

あなたは(OBJ)のキーを取得するためにObject.keysを使用することができます:ちょうどにforeachループの中にそれを投げる

var obj = {"mainKey1" : 
 
     [ 
 
      { 
 
       "subKey1" : "Value 1", 
 
       "subKey2" : "Value 2", 
 
       "subKey3" : "Value 3" 
 
      }, 
 
      { 
 
       "subKey1" : "Value 1", 
 
       "subKey2" : "Value 2", 
 
       "subKey3" : "Value 3" 
 
      } 
 
     ] 
 
} 
 

 
var keys = Object.keys(obj); 
 
console.log(keys[0]); 
 

 

 
var subkeys = Object.keys(obj[keys[0]][0]); 
 
console.log(subkeys); 
 
console.log(subkeys[0]); 
 
console.log(obj[keys[0]][0][subkeys[0]]);

を利用可能な各キー/サブキーを調べると、探している情報を取得できます。

+0

ありがとう、ChrisD。これは本当に私を助けました。私は今、この事の周りに頭を抱えようとしてきましたが、これはまだ最高のイラストです。とても感謝しております。 – iSofia

1
var obj = { 
    "mainKey1": [{ 
      "subKey1": "Value 1", 
      "subKey2": "Value 2", 
      "subKey3": "Value 3" 
     }, 
     { 
      "subKey1": "Value 1", 
      "subKey2": "Value 2", 
      "subKey3": "Value 3" 
     } 
    ], 

    "mainKey2": [{ 
      "subKey1": "Value 1", 
      "subKey2": "Value 2", 
      "subKey3": "Value 3" 
     }, 
     { 
      "subKey1": "Value 1", 
      "subKey2": "Value 2", 
      "subKey3": "Value 3" 
     } 
    ] 
}; 

これは、上記のオブジェクトからすべての値を出力します。

例を実行している
for (var key in obj) { 
    var innerArray = obj[key]; 
    for (var arrayKey in innerArray) { 
     var innerObj = innerArray[arrayKey] 
     for (var innerKey in innerObj) { 
       console.log(innerKey,innerObj[innerKey]); 
     } 
    } 
} 

からhttps://jsfiddle.net/voxf7do6/1/

+0

ありがとうArvind;本当に便利な例です。私は長い間JSONに苦労してきましたが、キーと物事を扱う必要がありました。 – iSofia

関連する問題