【问题标题】:How to read object of jsonp type如何读取jsonp类型的对象
【发布时间】:2017-10-22 07:28:05
【问题描述】:

我得到这个 HTML 文件来向随机词 API (wordnik) 服务器发出 GET 请求。它返回如下内容:

[{"id":2998982,"word":"failproof"}]

我只想要"word" 部分,但不知道如何访问它。我以为是data.word,但它只是打印了undefined

<!DOCTYPE html>

<html>
   <head>
     <title>Random Word Generator</title>
   </head>

   <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js">
   </script>

   <script>
     function generateRandomWord() {
        var randomWordURL = "http://api.wordnik.com:80/v4/words.json/randomWords?hasDictionaryDef=true&minCorpusCount=0&minLength=5&maxLength=15&limit=1&api_key=APIkey";

        $.ajax({
          type: "GET",
          url: randomWordURL,
          dataType: "jsonp",
          jsonpCallback: 'displayRandomWord'
        });
      }

     function displayRandomWord(data) {
       document.getElementById("randomword").innerHTML=data.word;
     }
   </script>

   <body onload="generateRandomWord()">
     <div id="randomword"></div>
   </body>
</html>

【问题讨论】:

  • 数据是一个数组,而不是一个普通的对象
  • 你可能想要data[0].word

标签: javascript html json ajax wordnik


【解决方案1】:

似乎 data 是一个数组,因此要访问它,您应该替换 data.wordby data[0].word

希望这会有所帮助!

【讨论】:

    【解决方案2】:

    在您的 JSON 示例中,您有 一个对象数组 而不是一个对象。如果您的代码将始终在此数组中获取一个元素,并且您想要提取其 word 属性,您可以将其更改为:

     function displayRandomWord(data) {
       document.getElementById("randomword").innerHTML=data[0].word;
     }
    

    【讨论】:

      猜你喜欢
      • 2015-05-03
      • 2016-11-23
      • 1970-01-01
      • 2016-11-28
      • 2017-12-30
      • 2021-08-26
      • 1970-01-01
      • 1970-01-01
      • 2018-02-20
      相关资源
      最近更新 更多