如何使用JavaScript解析以下对象数组以获取值 D1 , S1 等?
{
"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 :(得分: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])
}
}
}
答案 1 :(得分: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"]
我们现在有一个字符串数组。只要您继续使用两个字符,这将匹配,否则它将失败,您将需要一个更优雅的解决方案。