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){ } }) }

  

posted @ 2022-07-22 09:13  守稚心  阅读(696)  评论(0编辑  收藏  举报