我想知道一个属性是否存在于json树中,无论深度如何。有没有简单的方法来判断json对象是否包含属性?
isPropertyExists(@JSON @,@属性名@),返回// [@is存在@,@属性值@,@属性路径@]
例如:
var jsonObj={
lvl1a:{
lvl2a:{lvl3:"some value"},
lvl2b:{lvl3a:"some value",
lvl3b:"some value"}
},
lvl1b:{
lvl2aa:"some value",
lvl2bb:{target1:"some value"}
}
}
isPropertyExists(jsonObj,'lvl1a') // returns [true,jsonObj.lvl1a,'jsonObj.lvl1a']
isPropertyExists(jsonObj,'target1') // returns [true,jsonObj.lvl1b.lvl2bb.target1,'jsonObj.lvl1b.lvl2bb.target1']
isPropertyExists(jsonObj,'target2') // returns false
这是一个JavaScript对象,而不是一个JSON对象。 – Pointy
递归是你的朋友 – hindmost
使用JSON实际上更容易,你可以查找字符串:'json.indexOf('“lvl1a”:')!= -1'。 – Guffa