Javascript Ajax读取JSON-无法读取属性';名称';未定义的

Javascript Ajax读取JSON-无法读取属性';名称';未定义的,javascript,json,ajax,Javascript,Json,Ajax,myreport.php返回一个json文件。这是我尝试阅读的javascript: <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script> <script> $(document).ready(function () { var data; $.ajax({ type: 'POST', dataType

myreport.php返回一个json文件。这是我尝试阅读的javascript:

<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script>
$(document).ready(function () {
        var data;
        $.ajax({
            type: 'POST',
            dataType: 'json',
            url: 'report.php',
            data: data,
            success: function (data) {
                console.log(data[0].name);
            }
        });
    });
</script>
它没有在控制台中打印json,而是给出以下错误:

Uncaught TypeError: Cannot read property 'name' of undefined
    at Object.success (index.php:23)
    at c (jquery-1.9.1.min.js:3)
    at Object.fireWith [as resolveWith] (jquery-1.9.1.min.js:3)
    at k (jquery-1.9.1.min.js:5)
    at XMLHttpRequest.r (jquery-1.9.1.min.js:5)
有人能帮我理解为什么吗?

应该是这样的

console.log(data.report.elements[0].name);
应该是

console.log(data.report.elements[0].name);

首先,不要对变量进行阴影处理。
将数据重命名为
result
(或类似名称)。
其次,在JSON中,您必须选择JSON的数据类型。
使用
result.report.data[0]。name

首先不要对变量进行阴影处理。
console.log(data.report.data[0].breakdown[1].name);
将数据重命名为
result
(或类似名称)。
其次,在JSON中,您必须选择JSON的数据类型。
使用
result.report.data[0]。name

查看JSON,我认为您缺少对“report”对象的访问,因此您想要获取第一个数据元素的名称是:

data.report.data[0].name
console.log(data.report.data[0].breakdown[1].name);
而不仅仅是

data[0].name

查看JSON,我认为您缺少对“report”对象的访问,因此您想要获得第一个数据元素的名称是:

data.report.data[0].name
而不仅仅是

data[0].name

变量
data
保存着整个响应对象。它不是数组。你为什么不试试这种方法呢


data.report.elements[0]。name

变量
data
包含整个响应对象。它不是数组。你为什么不试试这种方法呢

console.log(data.report.data[0].breakdown[1].name);
data.report.elements[0].名称

console.log(data.report.data[0].breakdown[1].name);
它将输出
:概述

其中0是数据数组的第一个元素,1是细分数组的第二个元素。也许您想使用
.each()

它将输出
:概述

其中0是数据数组的第一个元素,1是细分数组的第二个元素。也许您想使用
.each()


您需要哪个元素的名称?
data
varable在我看来像一个对象,所以我猜
data[0]
将是未定义的?您的数据只是一个对象使用data.report.data[0]。name您需要哪个元素的名称?
data
varable在我看来像一个对象,所以我猜
data[0]
将被取消定义?您的数据只是一个对象。请使用data.report.data[0]。name