Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.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_Node.js - Fatal编程技术网

验证javascript中JSON对象的可用性

验证javascript中JSON对象的可用性,javascript,json,node.js,Javascript,Json,Node.js,在json对象内部,我遍历到4个级别,任何级别都可能未定义和代码中断 如何验证/检查JavaScript中的json节点而不是jquery中的json节点 productDetail.breadcrumb.levels.push(paramObj.categories.category.category.category.CATEGORYNAME); 您需要这样检查: var categoryName = (paramObj.categories &a

在json对象内部,我遍历到4个级别,任何级别都可能未定义和代码中断

如何验证/检查JavaScript中的json节点而不是jquery中的json节点

productDetail.breadcrumb.levels.push(paramObj.categories.category.category.category.CATEGORYNAME);

您需要这样检查:

var categoryName = (paramObj.categories 
                    && paramObj.categories.category
                    && paramObj.categories.category.category
                    && paramObj.categories.category.category.CATEGORYNAME);

如果沿途没有任何对象,这将为您提供类别名称或未定义。

将其抽象为检查函数

function myJsonValue(ob, prop) {
    var propsArray = prop.split('.');
    var out = ob;
    var i;
    for (i=0; i < propsArray.length; i += 1){
        var dis = propsArray[i];
        if (!out[dis]) {
            return undefined;
        }
        out = out[dis];

    }
    return out;
}

您所能做的就是
尝试。。catch
-虽然通常您应该知道数据的结构。有时数据结构可能会更改。For in用于在对象属性列表上进行迭代。看见
myJsonValue(paramObj, "categories.category.category.category.CATEGORYNAME")