2016-07-18 18 views
0

私の質問は、javascriptを使用してjsonデータのspecefic形式をどのように読むことができるかです。たとえば、これがあれば難しいと思われます。でる。私はこのフォームを持っていた場合複雑で入れ子になったjsonデータを読む方法

{ 
    "jQRReponse": [ 
    [ 
     { 
     "sujet": "RHONE ALPES", 
     "verbe": "est_le_nom_de_la_region", 
     "complement": { 
      "sujet": "82", 
      "verbe": "est_la_region_du_dept", 
      "complement": { 
      "sujet": "01", 
      "verbe": "est_le_numero_du_dept", 
      "complement": { 
       "sujet": "Ain", 
       "verbe": "contient_les_resultats_de_depAnn", 
       "complement": { 
       "sujet": "Ain2014", 
       "verbe": "Pop_results_Ens_Total", 
       "complement": "626794" 
       } 
      } 
      } 
     } 
     } 
    ], 
    [ 
     { 
     "sujet": "RHONE-ALPES", 
     "verbe": "est_le_nom_de_la_region", 
     "complement": { 
      "sujet": "82", 
      "verbe": "est_la_region_du_dept", 
      "complement": { 
      "sujet": "01", 
      "verbe": "est_le_numero_du_dept", 
      "complement": { 
       "sujet": "Ain", 
       "verbe": "contient_les_resultats_de_depAnn", 
       "complement": { 
       "sujet": "Ain2014", 
       "verbe": "Pop_results_Ens_Total", 
       "complement": "626794" 
       } 
      } 
      } 
     } 
     } 
    ] 
    ] 
} 

セイ:

data : [{ 
toto:5, 
mama:10 
}, 
{ 
toto:99, 
mama:10 
}, 
{ 
toto:88, 
mama:10 
}] 

私つもりは私がこれを好きな指標でトト値を読んだ: data[i].toto

どうすれば最初のものにすることができますか?

は、あなたが要素、深さと鍵を知っている場合は、このネストされたJSONオブジェクトの特定の部分にアクセスすることができ、あなたに

+0

のような形をしていますか? – brk

+0

実際に私は後でそれらを使用できるすべての値を読み取ることができるようにしたい –

+0

@YahyaAlamiまずJavaScriptのデータをjsonオブジェクトに解析し、ここでデータを視覚化することができますhttp://www.jsoneditoronline.org/ obj.jQRReponse [1] .sujetなどを使用して、ちょうどチップ –

答えて

1

がたくさんあります。

アクセスは、あなたが読みたいキー値

data.jQRReponse[0][0].complement.complement.sujet 
// returns "01" 

function read(o) { 
 
    Object.keys(o).forEach(function (k) { 
 
     if (o[k] !== null && typeof o[k] === 'object') { 
 
      console.log(k + ' -->'); 
 
      read(o[k]); 
 
      return; 
 
     } 
 
     console.log(k + ': ' + o[k]); 
 
    }); 
 
} 
 

 
var data = { "jQRReponse": [[{ "sujet": "RHONE ALPES", "verbe": "est_le_nom_de_la_region", "complement": { "sujet": "82", "verbe": "est_la_region_du_dept", "complement": { "sujet": "01", "verbe": "est_le_numero_du_dept", "complement": { "sujet": "Ain", "verbe": "contient_les_resultats_de_depAnn", "complement": { "sujet": "Ain2014", "verbe": "Pop_results_Ens_Total", "complement": "626794" } } } } }], [{ "sujet": "RHONE-ALPES", "verbe": "est_le_nom_de_la_region", "complement": { "sujet": "82", "verbe": "est_la_region_du_dept", "complement": { "sujet": "01", "verbe": "est_le_numero_du_dept", "complement": { "sujet": "Ain", "verbe": "contient_les_resultats_de_depAnn", "complement": { "sujet": "Ain2014", "verbe": "Pop_results_Ens_Total", "complement": "626794" } } } } }]] }; 
 

 
read(data, []);

+0

あなたはどこから脳を取得したのですか?ありがとう –

1

ありがとうございます。

は、あなたの要素が0であれば、あなたはこのように行うことができ、深さが2であり、鍵はverbeであると言う:

nestedObj[0].complement.complement.complement.verbe 

あなたの要件は、オブジェクト全体を横断し、あなたが必要とする何かを見つけることがある場合は、各要素に再帰関数を使用できます。

function traverse_it(obj){ 

    for(var prop in obj){ 

     console.log(obj[prop]);   //Or whatever you want to do with this level 

     if(typeof obj[prop]=='object'){ 
      traverse_it(obj[prop[i]]);  //Function goes to the next level here 

     } 
    } 
} 

traverse_it(nestedObj); 

Hereあなたはすべてのデータを反復してressultを得ることができる洞察力

+0

これは実際にはnestedObj [i] [0]のようにする必要がありますが、間違っていますが、答えは –

+0

です。それの多数を含む配列ではありません。 –

+0

よろしく!この場合、私はそれに問題はありません、ありがとうございます –

関連する問題