js 获取多级json的key
假设多级json的层级不定,而且json的key不确定,那么就不能用Object.key的方式去遍历获取key-value,那么我们可以换一种思路,使用递归算法来遍历json的多个节点,来获取每个节点的key-value,唯一的难点就是判断某个节点下是否是一个新的json对象,以下是自己写的demo代码
var data2 = '[{"terminalId":10000001,"tops":{"cumulativeAmount":2,"dailyOutput":1,"hydraulicTemperature":2,"productivity":100,"waterFlow":30,"oilPhaseFlow":10,"screwPump":{"rotatingSpeed":100,"pressure":100,"temperature":50},
"sensitizedFlow":80,"catalyticFlow":20,"emulsifie":{"rotatingSpeed":100,"pressure":100,"temperature":50},"axialDisplacement":50,"radialDisplacement":60,"waterLevel":100,"oilPhaseLevel":30,"runStatus":2,"var1":"","var2":"",
"var3":"","var4":"","var5":"","var6":"","var7":"","var8":"","var9":"","var10":"","var11":"","var12":"","var13":"","var14":"","var15":"","var16":"","var17":"","var18":"","var19":"","var20":""},
"chassis":{"dayKilometer":12,"lng":12.3,"lat":21.3,"location":"XX市","fuelConsumption":19,"totalKilometer":80,"direction":60}}]'
this.consoleJsonData(JSON.parse(data2));
// function:
consoleJsonData(data) {
Object.keys(data).forEach(key => {
console.error(key);
try {
if (typeof data[key] == "object") {
this.consoleJsonData(data[key]);
}
}catch (e){
}
})
}
为了未来有更多的选择

浙公网安备 33010602011771号