我创建了一个 API。使用 ajax,我想输出天气。我专门寻找描述和温度

I have created an API. Using ajax, I want to output the weather. I'm specifically looking for the description and the temperature

提问人:Nathan Vu 提问时间:5/24/2023 最后编辑:Jaromanda XNathan Vu 更新时间:5/24/2023 访问量:29

问:

我能够 innerHTMl 并输出温度。我很难访问天气对象的描述。另外,如何同时显示 temp 和 description 这两个值?

我在这里创建了 API https://mm214.com/jsondemo.php

<span id="temp"></span>
<span id="weather"></span>
<script>
const getJSON = function(url, callback) {
    let xhr = new XMLHttpRequest();
    xhr.open('get', url, true);
    xhr.responseType = 'json';
    xhr.onload = function() {
      let status = xhr.status;
      if (status == 200) {
        callback(null, xhr.response);
      } else {
        callback(status);
      }
    };
    xhr.send();
};

getJSON('https://mm214.com/jsondemo.php', function(err, data) {
  if (err != null) {
    alert('Something went wrong: ' + err);
  } else {
    document.getElementById("temp").innerHTML = data.main.temp
    // document.getElementById("temp").innerHTML = data.main.pressure;
    //lert('Your Json result is:  ' + data.result);
  }
});

</script>

javascript json ajax dom

评论

0赞 Jaromanda X 5/24/2023
你的代码工作正常 - 我把它变成了一个代码片段 - 当你运行它时,它可以工作
0赞 Jaromanda X 5/24/2023
对不起,只是重新阅读问题......用data.weather[0].description
0赞 Naveen Chandra Tiwari 5/24/2023
是否要打印温度和描述?试试这个 var tempJson = data.main.temp;var tempJson1 = 数据.weather[0].description;document.getElementById(“temp”).innerHTML = tempJson + “ ” + tempJson1;

答:

1赞 The KNVB 5/24/2023 #1

我给出一个示例代码供您参考:

let data = {
  "coord": {
    "lon": -0.13,
    "lat": 51.51
  },
  "weather": [{
    "id": 300,
    "main": "Drizzle",
    "description": "light intensity drizzle",
    "icon": "09d"
  }],
  "base": "stations",
  "main": {
    "temp": 280.32,
    "pressure": 1012,
    "humidity": 81,
    "temp_min": 279.15,
    "temp_max": 281.15
  },
  "visibility": 10000,
  "wind": {
    "speed": 4.1,
    "deg": 80
  },
  "clouds": {
    "all": 90
  },
  "dt": 1485789600,
  "sys": {
    "type": 1,
    "id": 5091,
    "message": 0.0103,
    "country": "GB",
    "sunrise": 1485762037,
    "sunset": 1485794875
  },
  "id": 2643743,
  "name": "London",
  "cod": 200
};


document.getElementById("temp").innerHTML = data.main.temp;
document.getElementById("weather").innerHTML = data.weather[0].description;
<span id="temp"></span>
<span id="weather"></span>

评论

0赞 Nathan Vu 5/24/2023
啊,太感谢你了。[0]的解释是什么?我对它有点熟悉,但这种情况下的逻辑是什么?
0赞 The KNVB 5/24/2023
这是因为 是一个数组。因此,如果您需要访问数组的第一个元素,则必须使用 [0] 语法。由于 javascript 数组是零索引的,因此数组的第一个元素位于索引 0 处,第二个元素位于索引 1 处,依此类推,最后一个元素位于数组的 length 属性值减去 1 处。data.weather