Javascript 从本地嵌套的JSON对象检索数据

Javascript 从本地嵌套的JSON对象检索数据,javascript,json,Javascript,Json,我制作了一个小测试页面,看起来像这样: <!DOCTYPE html> <html lang="en" class="no-js"> <head> <title>Get JSON Value</title> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script> </

我制作了一个小测试页面,看起来像这样:

<!DOCTYPE html>
<html lang="en" class="no-js">
<head>
    <title>Get JSON Value</title>

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>

</head>
<body>

    <script>

        var json = $.getJSON("../js/report.json", function(data) 
        {
            var items = [];

            $.each(data, function (key, value)
            {
                items.push(key + " " + value);  
            });

            alert(items[3]);
        });

    </script>

</body>
</html>
警报(项目[2])为我提供
stats[对象]
警报(项目[3])给我
套件[对象]

我是否可以检索
套件
测试
通过次数
? 因此,警报的输出将是
套件7
测试13
通过11

编辑:

理想情况下,我希望将这些值存储在它们自己的变量中,而不仅仅是
alert
console.log

为david编辑

编辑3:

我试过:


console.log(项[2].suites)=>
未定义

您没有将统计数据推送到项目数组。这就是为什么你不能得到它的数据。 尽量做得简单些

var json = $.getJSON("../js/report.json", function(data) {
    var stats = data.stats;
    $.each(stats, function(key, val){
       alert(key + " " + val)
    });
});

这里有一种方法可以检索
套件的数量
测试
通过次数

正在检索
套件的数量
=>
项目[3]。stats.suites

正在检索
测试的数量
=>
项[3]。统计数据。测试

正在检索
通过次数
=>
项目[3]。统计数据。通过次数

将括号内的
3
替换为所需的索引号


编辑

你可以忘记我上面的答案。这才是真正的答案。我对你的代码做了一些修改,以得到你想要的答案

var items=[];
function recursive(data){
    $.each(data, function (key, value)
    {
        if (value instanceof Object) {
            recursive(value);
        } else {
            items.push(key + " " + value);
        }
    });
}

var json = $.getJSON("report.json", function(data) 
{
    recursive(data);
    console.log(items[2]); // return 'suites 7'
    console.log(items[3]); // return 'tests 13'
    console.log(items[4]); // return 'passes 11'
});

由于对象中有一个对象,因此我必须使用递归来跟踪所有数据。

不要使用警报,请尝试像这样使用
console.log
(项[3])
。之后,检查元素以查看结果。@david它只会给出完全相同的结果。您可以单击结果上的向下箭头以查看更深入的答案。请参阅我的编辑“您继续使用该词。我认为它的意思与您认为的不同。”。您好,谢谢您的回答。我刚刚尝试了
console.log(items[3].suites)
结果返回为
未定义
。有什么想法吗?
console.log(items[2].suites)也是如此编辑,我想现在我的答案会对你有所帮助
var items=[];
function recursive(data){
    $.each(data, function (key, value)
    {
        if (value instanceof Object) {
            recursive(value);
        } else {
            items.push(key + " " + value);
        }
    });
}

var json = $.getJSON("report.json", function(data) 
{
    recursive(data);
    console.log(items[2]); // return 'suites 7'
    console.log(items[3]); // return 'tests 13'
    console.log(items[4]); // return 'passes 11'
});