首页 > 解决方案 > 如何从此数组中获取某些对象的值?

问题描述

我想获得“城市”和“国家”的价值。

这是我的 HTML 和 javascript 代码。

我试过了:

  <pre id="json-result"></pre>
  <p><span id="city"></span></p>
  <p><span id="country"></span></p>

  <script>
    var result = document.getElementById("json-result");
    const Http = new XMLHttpRequest();

    window.addEventListener("load", function () {
      console.log("getLocation Called");
      var bdcApi = "https://api.bigdatacloud.net/data/reverse-geocode-client"

      navigator.geolocation.getCurrentPosition(
        (position) => {
          bdcApi = bdcApi +
            "?latitude=" + position.coords.latitude +
            "&longitude=" + position.coords.longitude +
            "&localityLanguage=en";
          getApi(bdcApi);

        },
        (err) => {
          getApi(bdcApi);
        }, {
          enableHighAccuracy: true,
          timeout: 5000,
          maximumAge: 0
        });
    })

    function getApi(bdcApi) {
      Http.open("GET", bdcApi);
      Http.send();
      Http.onreadystatechange = function () {
        if (this.readyState == 4 && this.status == 200) {
          result.innerHTML = this.responseText;
          var results = this.responseText
          document.getElementById("city").innerHTML = results.city
        }
      };
    }
  </script>

标签: javascriptarrays

解决方案


在尝试访问其成员之前,您需要将 API 的文本响应转换为实际的 Javascript 对象。您可以通过使用将 JSON 文本转换为 Javascript 对象JSON.parse()

试试这个:

const results = JSON.parse(this.responseText);

(附带说明,如果您不需要支持 Internet Explorer,最好使用更新且更易于使用的fetch而不是XMLHttpRequest.)


推荐阅读