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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.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_Jquery_Json_Undefined - Fatal编程技术网

Javascript 访问JSON提要中的嵌套对象并处理未定义的

Javascript 访问JSON提要中的嵌套对象并处理未定义的,javascript,jquery,json,undefined,Javascript,Jquery,Json,Undefined,我的问题是: 我有一个端点,它将返回JSON,其中包含一个名为:我想要的数据 如果服务器检测到我想要的数据有一个值,那么它将返回如下内容: { "sample": { "title": "The Title", "foo": { "Bar": { "Baz": { "Qux": { "the_data_i_want

我的问题是:

我有一个端点,它将返回JSON,其中包含一个名为:
我想要的数据

如果服务器检测到
我想要的数据有一个值,那么它将返回如下内容:

{
    "sample": {
        "title": "The Title",
        "foo": {
            "Bar": {
                "Baz": {
                    "Qux": {
                        "the_data_i_want": "DATA PARTY!!!!"
                    }
                }
            }
        }
    }
}
{
    "sample": {
        "title": "The Title"
    }
}
如果服务器检测到
我想要的数据
为空,则返回的JSON如下所示:

{
    "sample": {
        "title": "The Title",
        "foo": {
            "Bar": {
                "Baz": {
                    "Qux": {
                        "the_data_i_want": "DATA PARTY!!!!"
                    }
                }
            }
        }
    }
}
{
    "sample": {
        "title": "The Title"
    }
}
我的问题是,因为链的任何部分
sample.foo.Bar.Baz.Qux.我想要的数据
My be
undefined
我最终会在json结构的每一步上做这些疯狂的检查,首先看它是否未定义,然后看它是否未定义,我一个接一个地尝试,直到找到我想要的
数据,它似乎是错的

问题:

有没有“正确”的方法来处理这个问题?即使嵌套任意深,在这种情况下我会怎么做?我愿意使用jQuery


谢谢大家!

可能是这样的,这可能行得通。。但是可能有更好的方法

在这种方法中,我将所有键都放在一个数组中,并在一个循环中检查它们

var obj = {
    "sample": {
        "title": "The Title",
        "foo": {
            "Bar": {
                "Baz": {
                    "Qux": {
                        "the_data_i_want": "DATA PARTY!!!!"
                    }
                }
            }
        }
    }
};

var arr = ["foo", "Bar", "Baz", "Qux", "the_data_i_want"];
var arr1 = ["foo", "Bar", "Baz", "Qux", "the_data_i_want", "ding"];

checkKey('Object 1' , arr);
checkKey('Object 2 ' ,arr1);

function checkKey(str ,arr) {
    if (obj && obj.sample) {
        var k = obj.sample;
        var i = 0;
        for (var i = 0; i < arr.length; i++) {
            if (k[arr[i]]) {
                k = k[arr[i]];
                if (i === arr.length - 1) {
                    alert('Data Found :: ' + k);
                }
            }
            else {
                alert('No such Key in :: ' + str );
                break;
            }
        }
    }
    else {
         alert('No such Key in :: ' + str );
    }
}​
var obj={
“样本”:{
“头衔”:“头衔”,
“foo”:{
“酒吧”:{
“Baz”:{
“Qux”:{
“我想要的数据”:“数据方!!!!”
}
}
}
}
}
};
var arr=[“foo”、“Bar”、“Baz”、“Qux”、“我想要的数据”];
var arr1=[“foo”、“Bar”、“Baz”、“Qux”、“我想要的数据”、“ding”];
检查键(“对象1”,arr);
检查键(“对象2”,arr1);
功能检查键(str、arr){
if(对象和对象样本){
var k=对象样本;
var i=0;
对于(变量i=0;i