声明一个三层的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