JavaScript递归遍历输出json所有字段与值的方法

声明一个三层的json对象作为测试:

var js={


         "text":"MXCHIP won a prize",


         "id": 1234,


         "detail":{


                      "comp": "MXCHIP.Inc",


                      "from":"ShangHai",


                      "focus":"Internet of Things",


                      "module":[{"k":"EMW3165"},{"k":"EMW3166"},{"k":"EMW3031"},{"k":"EMW3239"}]


                         }


      }

递归取值函数:(key为键名,sign为各级别键名之间的分隔符)

 function printValue(js,key,sign){
    if(key == ""||key == undefined){
       key="json"
    }
    for(p in js){
       var k=key+sign+p
       if(!(js[p] instanceof Object))    
        console.log(k+" = "+js[p])    //如果不是Object则打印键值
       else
         printValue(js[p],k,sign)    //如果是Object则递归
    }
}
      
 printValue(js,"",">")       
    


输出结果如下:

json>text = MXCHIP won a prize
json>id = 1234
json>detail>comp = MXCHIP.Inc
json>detail>from = ShangHai
json>detail>focus = Internet of Things
json>detail>module>0>k = EMW3165
json>detail>module>1>k = EMW3166
json>detail>module>2>k = EMW3031
json>detail>module>3>k = EMW3239


猜你喜欢

转载自blog.csdn.net/capricio/article/details/78580624
今日推荐