如何读取jsonp类型的对象

时间:2017-10-21 19:56:12

标签: javascript html json ajax wordnik

我有这个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>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:3)

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

希望这有帮助!

答案 1 :(得分:0)

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

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