4

我正在使用 Ajax 访问字典 REST API。

$.ajax({
  url: "http://api.wordnik.com//v4/word.json/cat/definitions?api_key=mykey&includeRelated=false&includeTags=false&limit=1",
  dataType : 'json',
  success: function(data) {
    //called when successful
    alert(data.word);
  },
  error: function(e) {
    //called when there is an error
    console.log(e.message);
  }
});

响应:

[
  {
    "textProns": [],
    "sourceDictionary": "ahd-legacy",
    "exampleUses": [],
    "relatedWords": [],
    "labels": [],
    "citations": [],
    "word": "cat",
    "text": "A small carnivorous mammal (Felis catus or F. domesticus) domesticated since early times as a catcher of rats and mice and as a pet and existing in several distinctive breeds and varieties.",
    "sequence": "0",
    "score": 0.0,
    "partOfSpeech": "noun",
    "attributionText": "from The American Heritage® Dictionary of the English Language, 4th Edition"
  }
]

在我的测试示例中,我收到成功警报undefined。我看到的大多数 Ajax 示例都使用循环,但我返回一个结果。如何从对象中提取wordtext值?

4

3 回答 3

7

如您所见,您的回复以 . 开头[和结尾]。所以你的回应是一个数组。然后,在数组内部,您将获得对象(以 开头{和结尾})。所以你data是一个数组,可以使用(x 是索引)访问,并且可以使用 .dot 表示法:等data[x]访问所选对象的每个成员。所以在你的情况下,如果只有一个结果,你可以做。.word.textdata[0].word

于 2012-07-22T03:59:36.887 回答
6

响应是数组内的一个对象。尝试data[0].word

于 2012-07-22T03:55:19.070 回答
3

您想像这样更改成功功能,

success: function(data) {
  alert(data[0].word);
}

我验证了正确的值。

jQuery AJAX

于 2012-07-22T04:07:52.843 回答