gpt4 book ai didi

javascript - jQuery getJSON 从 API 如何访问对象?

转载 作者:行者123 更新时间:2023-11-30 11:21:17 26 4
gpt4 key购买 nike

我正在尝试从 API 获取 JSON,然后访问 "main" "weather" 的对象JSON 的对象。

当我使用这段代码时:

$.getJSON("https://fcc-weather-api.glitch.me/api/current?lat=35&lon=139", function(json) {
var data = JSON.stringify(json);
alert(data);
});

我得到这个输出:

{
"coord": {
"lon": 159,
"lat": 35
},
"weather": [{
"id": 500,
"main": "Rain",
"description": "light rain",
"icon": "https://cdn.glitch.com/6e8889e5-7a72-48f0-a061-863548450de5%2F10n.png?1499366021399"
}],
"base": "stations",
"main": {
"temp": 22.59,
"pressure": 1027.45,
"humidity": 100,
"temp_min": 22.59,
"temp_max": 22.59,
"sea_level": 1027.47,
"grnd_level": 1027.45
},
"wind": {
"speed": 8.12,
"deg": 246.503
},
"rain": {
"3h": 0.45
},
"clouds": {
"all": 92
},
"dt": 1499521932,
"sys": {
"message": 0.0034,
"sunrise": 1499451436,
"sunset": 1499503246
},
"id": 0,
"name": "",
"cod": 200
}

现在,我试图获得的输出是 "Rain" ("main" 对象的 "weather" 对象的属性(我希望我说得对,我是初学者))。

从逻辑上讲,我会这样做:

$.getJSON("https://fcc-weather-api.glitch.me/api/current?lat=35&lon=139", function(json) {
var data = JSON.stringify(json);
alert(data["weather"].main);
});

但这并没有给我任何输出。

我做了一些搜索,发现我应该解析。

但是当我这样做的时候:

$.getJSON("https://fcc-weather-api.glitch.me/api/current?lat=35&lon=139", function(json) {
var data = JSON.stringify(json);
var Jason = JSON.parse(data);
alert(Jason["weather"].main);
});

我得到了 undefined再次作为我的输出。

那么,我的代码应该是什么样子,这样我的输出就会是 "Rain" ?

PS:如果我在描述我的问题时犯了错误,我很抱歉,我真的是 JavaScript/jQuery 的新手,而且英语是我的第二语言。

最佳答案

您几乎拥有它,只需在访问天气后添加 [0] 即可。由于天气是一个数组,您需要它从第一个元素获取数据:

$.getJSON("https://fcc-weather-api.glitch.me/api/current?lat=35&lon=139", 
json => console.log(json.weather[0].main)
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

此外,getJSON 函数已经为您解析了 JSON,不需要额外的 JSON.parse

关于javascript - jQuery getJSON 从 API 如何访问对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49759403/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com