Javascript Ajax读取JSON-无法读取属性';名称';未定义的
myreport.php返回一个json文件。这是我尝试阅读的javascript: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
<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