2017-01-20 2 views
0

JavaScriptを使用して次のオブジェクト配列を解析して値D1,S1などを取得するにはどうすればよいですか?オブジェクト配列を解析する方法JS

{ 
"D1": { 
    "C1": { 
    "S2": [ 
    ["P1", "P4"] 
    ], 
    "S1": [ 
    ["P2"] 
    ] 
    }, 
    "C2": { 
    "S2": [ 
    ["P3", "P7"] 
    ] 
    }, 
    "C3": { 
    "S4": [ 
    ["P6"] 
    ] 
    } 
}, 
"D3": { 
    "C3": { 
    "S3": [ 
    ["P5"] 
    ] 
    } 
} 
} 

所望の出力

私は鍵を取り出し、次のように配置する必要があります。

D1 

C1 

S2 

p1 p4 

s1 

p2 
+0

実際の問題を説明してください。これはこの[質問]のフォローアップのようです(http://stackoverflow.com/questions/41736720/how-do-i-parse-the-following-object-array-to-the-following-format-for-表示されます)、それはちょっと奇妙な孤立した表示になります。あなたが試したことを加えてください。こちらもご覧ください[mcve] –

+0

この質問の書式を編集して訂正しました。私たちは、プログラムの出力を掲示する際に** Blockqoute **をここで使用しません。代わりに**コードサンプル**ボタンを使用してください。 – mertyildiran

答えて

0

てみ次のコードは、私はコンソールログに印刷しています、あなたは文字列配列か何かにプッシュすることができます

var data= 
{ 
"D1": { 
    "C1": { 
    "S2": [ 
    ["P1", "P4"] 
    ], 
    "S1": [ 
    ["P2"] 
    ] 
    }, 
    "C2": { 
    "S2": [ 
    ["P3", "P7"] 
    ] 
    }, 
    "C3": { 
    "S4": [ 
    ["P6"] 
    ] 
    } 
}, 
"D3": { 
    "C3": { 
    "S3": [ 
    ["P5"] 
    ] 
    } 
} 
} 

getkeys(data); 
function getkeys(data){ 
    for (var key in data){ 
    console.log(key); 
    if(Array.isArray(data[key])){ 
     for(var i=0;i<data[key][0].length;i++){ 
      console.log(data[key][0][i]); 
     } 
    } 
    else{ 
     getkeys(data[key]) 
    } 
    } 
} 
0

を非常に簡単に、.replace().match()文字列のプロトタイプをいくつか使用して。

この例のobjectArrayがJSON表記のオブジェクトであるとしましょう。

objectArray = JSON.parse(objectArray); 
objectArray = objectArray.replace(/[^a-zA-Z1-9 ]/g, ""); 
objectArray = objectArray.match(/.{1,2}/g); 

戻り

["D1", "C1", "S2", "P1", "P4", "S1", "P2", "C2", "S2", "P3", "P7", "C3", "S4", "P6", "D3", "C3", "S3", "P5"] 

現在、当社の文字列の配列を持っています。これは、2文字を続けている限り一致します。そうしないと失敗し、より洗練されたソリューションが必要になります。

関連する問題