jQuery Ajax:获取特定的对象值

时间:2012-07-22 03:51:31

标签: jquery ajax json api

我正在使用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值?

3 个答案:

答案 0 :(得分:7)

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

答案 1 :(得分:6)

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

答案 2 :(得分:3)

您想要更改成功功能,

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

我验证了正确的值。

jQuery AJAX