Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.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/5/date/2.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 使用jQuery调用JSON响应API_Javascript_Jquery_Json - Fatal编程技术网

Javascript 使用jQuery调用JSON响应API

Javascript 使用jQuery调用JSON响应API,javascript,jquery,json,Javascript,Jquery,Json,我是javascript(和jquery)新手,我想调用如下api: {"GOOGL":{"PRICE":950.123},"TSLA":{"PRICE":345.67}} 我尝试使用我的代码,但没有成功: var list = ["GOOGL","TSLA"]; $( document ).ready(function() { $.getJSON('api.json', function(data) { for (var i in list) {

我是javascript(和jquery)新手,我想调用如下api:

{"GOOGL":{"PRICE":950.123},"TSLA":{"PRICE":345.67}}
我尝试使用我的代码,但没有成功:

var list = ["GOOGL","TSLA"];


$( document ).ready(function() {
    $.getJSON('api.json', function(data) {
        for (var i in list) {
                console.log(data.list[i].PRICE);
        };
    });
});
我遇到如下错误:“Uncaught TypeError:无法读取未定义的属性“0”

有人能帮我吗?

如评论中所述,您可以:

console.log(data[list[i]].PRICE);
解释:

list[i]
将返回存储在
list
索引
i
处的值(如
GOOGL
TSLA

存储在
data
{“GOOGL”:{“PRICE”:950.123},“TSLA”:{“PRICE”:345.67}
)中的值似乎使用
list[i]
GOOGL
TSLA
)的值作为键

这意味着执行
data[“GOOGL”]
(使用
data[list[i]]
)将获得
{“PRICE”:950.123}


然后再进行另一步
data[“GOOGL”].PRICE
(使用
data[list[i]].PRICE
)将获得
950.123

console.log(data.list[i].PRICE)不起作用,因为它正在
数据
对象中查找
列表
属性(该属性不存在)

在这种情况下,您将看到
未捕获类型错误:当
i
为零时,无法读取未定义的属性“0”,因为
数据。list
返回未定义(并且代码正试图从中获取属性
0
)。

如注释中所述,您可以执行以下操作:

console.log(data[list[i]].PRICE);
解释:

list[i]
将返回存储在
list
索引
i
处的值(如
GOOGL
TSLA

存储在
data
{“GOOGL”:{“PRICE”:950.123},“TSLA”:{“PRICE”:345.67}
)中的值似乎使用
list[i]
GOOGL
TSLA
)的值作为键

这意味着执行
data[“GOOGL”]
(使用
data[list[i]]
)将获得
{“PRICE”:950.123}


然后再进行另一步
data[“GOOGL”].PRICE
(使用
data[list[i]].PRICE
)将获得
950.123

console.log(data.list[i].PRICE)不起作用,因为它正在
数据
对象中查找
列表
属性(该属性不存在)

在这种情况下,您将看到
未捕获类型错误:当
i
为零时,无法读取未定义的属性“0”,因为
data.list
返回未定义(并且代码正试图从中获取属性
0

使用点运算符无法使用变量名访问对象的属性

所以你必须使用数组符号

使用点运算符无法使用变量名访问对象的属性


因此,你必须使用数组表示法。

@kevin:你不能使用点运算符访问对象键,因为你必须在散列中传递该键,如“data[list[i].”PRICE“

@kevin:你不能使用点运算符访问对象键,因为你必须在散列中传递该键,如“data[list[i].PRICE”

data[list[i]].PRICE
。这意味着
数据.list
未定义,请尝试通过
控制台检查
数据的内容。log(data)
@nnnnnn在list var中没有PRICE
var list=[“GOOGL”,“TSLA”]OP不太清楚他有
{“GOOGL”:{“PRICE”:950.123},“TSLA”:{“PRICE”:345.67}
,但在循环中他使用的是
列表
@guradio-在
列表
中没有
价格
,但在
数据[list[i]
中有
价格
。也就是说,对于
列表中的每个项目
,其价格可以从
数据
中检索。(当然,如果
列表
包含不在
数据
中的项,这仍然有“未定义”错误的风险)您认为列表的索引(即
i
将是什么,
0,1
)与data.list的内容有何关系?我想你的意思是
对于(我的列表)
所以我是
“GOOGL”
然后
“TSLA”
数据[list[I]].PRICE
。它的意思是
数据。list
未定义,请尝试通过
控制台检查
数据的内容。log(data)
@nnnnnn在list var中没有PRICE
var list=[“GOOGL”,“TSLA”]OP不太清楚他有
{“GOOGL”:{“PRICE”:950.123},“TSLA”:{“PRICE”:345.67}
,但在循环中他使用的是
列表
@guradio-在
列表
中没有
价格
,但在
数据[list[i]
中有
价格
。也就是说,对于
列表中的每个项目
,其价格可以从
数据
中检索。(当然,如果
列表
包含不在
数据
中的项,这仍然有“未定义”错误的风险)您认为列表的索引(即
i
将是什么,
0,1
)与data.list的内容有何关系?我想你的意思是(我的名单)
所以我是
“GOOGL”
然后
“TSLA”