JavaScript,我正在做一个ajax请求,我需要通过对象的帮助

JavaScript, I am making an ajax request and I need help going through the object

本文关键字:请求 对象 帮助 ajax JavaScript 一个      更新时间:2023-09-26
function wrong(word){
 $("#main-display").html("");
 $("#main-display").append("Sorry that is not a valid word");

var word = "lighht";
var check = "https://montanaflynn-spellcheck.p.mashape.com/check/?text=" + word;
// Ajax request to wordsapi 
// Will return the synonyms of the searched word
$.ajax({
    url: check, // The URL to the API. You can get this in the API page of the API you intend to consume
    type: 'GET', // The HTTP Method, can be GET POST PUT DELETE etc
    data: {}, // Additional parameters here
    dataType: 'json',
    success: function(data) { console.dir((data.source)); console.log(data);},
    error: function(err) { wrong(word) },
    beforeSend: function(xhr) {
    console.log(check);
    xhr.setRequestHeader("X-Mashape-Authorization", "key"); // Enter here your Mashape key
    }

}).done(function(response){
    console.log(word);
    console.log(response);
    var hey = Object.keys(response.corrections);
    console.log(hey);
    console.log(response.corrections +".lighht");
    for (var i = 0; i < 10; i++) {
        console.log(Object.keys(response.corrections.lighht));
    }
}); // End of ajax of synonyms

因此,我试图创建一个函数,该函数根据用户输入的单词返回可能的单词选择。我发现了一个工作很棒的API,但我很难在屏幕上获得数据。JSON对象看起来像这样:

我遇到的主要问题是"light"的对象键将根据单词而变化。所以当我把它变成一个变量,比如:

{
  "original": "lighht",
  "suggestion": "light",
  "corrections": {
    "lighht": [
      "light",
      "sleight",
      "hightail",
      "alright",
      "Bligh",
      "Lhotse",
      "Galahad"
    ]
  }
}
console.log(Object.keys(response.corrections.word[i]));

它不工作,坏了。

所以我需要知道如何得到这些数据

你正在使用jQuery,所以你可以使用$.each():

var response = {
  "original": "lighht",
  "suggestion": "light",
  "corrections": {
    "lighht": [
      "light",
      "sleight",
      "hightail",
      "alright",
      "Bligh",
      "Lhotse",
      "Galahad"
    ],
    "cooool": [
      "cool",
      "car"
    ]
  }
};
// If you want to iterate over all of the corrections:
$.each(response.corrections, function(c) {
  console.log(response.corrections[c]);
});
var userInput = 'cooool';
// Access an individual item:
console.log(response.corrections[userInput]);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

使用循环

var response = {
  "original": "lighht",
  "suggestion": "light",
  "corrections": {
    "lighht": [
      "light",
      "sleight",
      "hightail",
      "alright",
      "Bligh",
      "Lhotse",
      "Galahad"
    ]
  }
}
$.each(response.corrections, function(v) {
      console.log(v);
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>