2016-11-17 65 views
0
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对象如下所示:JavaScript,我正在做一个AJAX请求,我需要通过对象的帮助

我遇到的主要问题是“lighht”的对象键将根据单词进行更改。因此,当我尝试使其变成如下形式时:

{ 
    "original": "lighht", 
    "suggestion": "light", 
    "corrections": { 
    "lighht": [ 
     "light", 
     "sleight", 
     "hightail", 
     "alright", 
     "Bligh", 
     "Lhotse", 
     "Galahad" 
    ] 
    } 
} 

console.log(Object.keys(response.corrections.word[i])); 

它不工作并且中断。

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

+3

'corrections'不哈有一个属性叫'字' –

+0

我知道,但它需要它作为用户选择的可变基础 – heybit

回答

1

您正在使用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>

+0

非常感谢! – heybit

0

使用循环

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>

+0

我不认为更正是一个数组。 –