Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检查JSON对象中是否存在任何深度的参数_Javascript_Json_Object_Square Bracket - Fatal编程技术网

Javascript 检查JSON对象中是否存在任何深度的参数

Javascript 检查JSON对象中是否存在任何深度的参数,javascript,json,object,square-bracket,Javascript,Json,Object,Square Bracket,api以不可定义的深度返回JSON响应,其中可能包含或不包含某些元素。如何检查是否存在财产?一些参数包括奇怪的名称,如“@param”或“$”。这方面的例子如下 我为类似的东西写了一个检查,但由于上述原因,无法使用点语法。非常感谢您对修改此文件的帮助 function checkValue(objectPath) { var keys = Object.isArray(objectPath) ? objectPath : objectPath.split("."); if (ke

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)检查它之前,由于本例中的明显原因,我无法执行此操作。

您是在寻找属性名称还是属性值?对于属性名称,我需要检查它是否存在,否则输出将失败。可能是重复的,您想要该属性的值吗?或者仅仅是它是否存在?那里的大多数解决方案对于
checkForProperty('obj.@member age.value')
都能很好地工作。在任何情况下都必须传递字符串。