api在不可确定的深度返回JSON响应,其中可能包含或不包含某些元素。如何检查物业是否存在?一些参数包括奇怪的名称,如“@param”或“$”。示例如下。
我写了类似的检查,但由于上述原因不能使用点语法。帮助修改这一点非常感谢。
function checkValue(objectPath) {
var keys = Object.isArray(objectPath) ? objectPath : objectPath.split(".");
if (keys[0] == "window") keys.shift();
try {
return keys.inject(window, function(obj, key) {return obj[key];});
} catch (e) {
return undefined;
}
}
要测试的对象的示例是:
var obj = {
member: {
'@member-age': {
value: 42
}
}};
在我使用checkValue(obj.member.age)检查之前,但在此示例中出于显而易见的原因无法执行此操作。