使用javascript从url获取自动建议

使用javascript从url获取自动建议,javascript,html,Javascript,Html,我有一个自动建议url,我需要编写一个JavaScript代码,通过它我将能够看到自动建议数据。 我尝试了下面的代码,但我无法通过它 <!DOCTYPE html> <head> <script> var xmlhttp = new XMLHttpRequest(); var url = "http://***.poc.xxxxx.com/v1/staples/suggest?authKey=baef7f8e39c512342c8a14b7f6

我有一个自动建议url,我需要编写一个JavaScript代码,通过它我将能够看到自动建议数据。 我尝试了下面的代码,但我无法通过它

<!DOCTYPE html>
<head>
<script>
    var xmlhttp = new XMLHttpRequest();
    var url = "http://***.poc.xxxxx.com/v1/staples/suggest?authKey=baef7f8e39c512342c8a14b7f6018b58&q=wat&rows=8";
    var words = []
    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            myFunction(xmlhttp.responseText);
    }
}
xmlhttp.open("GET", url, true);
xmlhttp.send();

function myFunction(response) {
    var data = JSON.parse(response);
    var req_data = data.suggestions[0].suggestion;
    console.log(req_data);
    //document.getElementById("id01").innerHTML = words;
}
</script>
 </head>
   <body>
     <!-- <div id="id01"></div> -->
   </body>
</html>

var xmlhttp=new XMLHttpRequest();
var url=“http://***.poc.xxxxx.com/v1/staples/suggest?authKey=baef7f8e39c512342c8a14b7f6018b58&q=wat&rows=8”;
var words=[]
xmlhttp.onreadystatechange=函数(){
if(xmlhttp.readyState==4&&xmlhttp.status==200){
myFunction(xmlhttp.responseText);
}
}
open(“GET”,url,true);
xmlhttp.send();
功能myFunction(响应){
var data=JSON.parse(响应);
var req_data=数据。建议[0]。建议;
控制台日志(请求数据);
//document.getElementById(“id01”).innerHTML=words;
}
我得到的回应是:-

{"suggestions":[{"suggestion":"\u200B\u200B\u200B<b>wat</b>er","categories":[{"name":"Water & Juice","filter":"category_id%3A4606"},{"name":"Water Dispensers & Filters","filter":"category_id%3A16896"}]},{"suggestion":"\u200B\u200B\u200B<b>wat</b>er cooler","categories":[{"name":"Water Dispensers & Filters","filter":"category_id%3A16896"},{"name":"Kitchen Storage & Organization","filter":"category_id%3A1303"}]},{"suggestion":"\u200B\u200B\u200B<b>wat</b>er bottle","categories":[{"name":"Lunch Totes & Water Bottles","filter":"category_id%3A8812"},{"name":"Water & Juice","filter":"category_id%3A4606"}]},{"suggestion":"\u200B\u200B\u200B<b>wat</b>er cups","categories":[{"name":"Disposable Plates & Cups","filter":"category_id%3A992"},{"name":"Disposable Cups","filter":"category_id%3A13302"}]},{"suggestion":"\u200B\u200B\u200B<b>wat</b>er bottle labels","categories":[{"name":"Labels","filter":"category_id%3A997"},{"name":"Mailing & Shipping Labels","filter":"category_id%3A6118"}]},{"suggestion":"\u200B\u200B\u200B<b>wat</b>er dispenser","categories":[{"name":"Water Dispensers & Filters","filter":"category_id%3A16896"},{"name":"All Kitchen","filter":"category_id%3A60479"}]},{"suggestion":"\u200B\u200B\u200B<b>wat</b>ch","categories":[{"name":"Pedometers & Fitness Trackers","filter":"category_id%3A2554"},{"name":"Smart Watches","filter":"category_id%3A62030"}]},{"suggestion":"\u200B\u200B\u200B<b>wat</b>ercolor","categories":[{"name":"Abstract Art","filter":"category_id%3A12645"},{"name":"Wall Art/Decor","filter":"category_id%3A26678"}]}]}
{“建议”:[{“建议”:“\u200B\u200B\u200B水”,“类别”:[{“名称”:“水和果汁”,“过滤器”:“类别id%3A4606”},{“名称”:“饮水机和过滤器”,“过滤器”:“类别id%3A16896”},{“建议”:“\u200B\u200B\u200B\u200B水冷却器”,“类别”:[{“名称”:“饮水机和过滤器”,“过滤器”:“类别id%3A16896”},{“名称”:“厨房存储和组织”、“过滤器”:“类别id%3A1303”}、{“建议”:“\u200B\u200B\u200B水瓶”、“类别”:[{“名称”:“午餐袋和水瓶”、“过滤器”:“类别id%3A8812”}、{“名称”:“水和果汁”、“过滤器”:“类别id%3A4606”}、{“建议”:“\u200B\u200B\u200B\u200B水杯”、“类别”:“{“名称”:“一次性盘子和杯子”过滤器“:”类别id%3A992“},{”名称“:”一次性杯子“,”过滤器“:”类别id%3A13302“},{”建议“:”\u200B\u200B\u200B水瓶标签“,”类别“:[{”名称“,”标签“,”过滤器“:”类别id%3A997“},{”名称“:”邮寄和运输标签“,”过滤器“:”类别id%3A6118“},{”建议“:”:“\u200B\u200B\u200B\u200B\u200B饮水机“,”类别“,“{”名称“:”饮水机和过滤器,“过滤器”:“类别id%3A16896”},{“名称”:“所有厨房”,“过滤器”:“类别id%3A60479”},{“建议”:“\u200B\u200B\u200Bwatch”,“类别”:[{“名称”:“计步器和健身跟踪器”,“过滤器”:“类别id%3A2554”},{“名称”:“智能手表”,“过滤器”:“类别id%3A62030”},{“建议”:“\u200B\u200B\u200B\u200Bwatercolor”,”类别“:[{”名称“:”抽象艺术“,”过滤器“:”类别id%3A12645“},{”名称“:”墙壁艺术/装饰“,”过滤器“:”类别id%3A26678“}]}”

从回复中,我需要找到建议之后的所有产品名称而不是建议如水冷却器等的建议。

很难看出你到底想要什么。如果你想要的只是所有“名称”的列表“作为建议返回的属性,您可以收集以下内容:

function myFunction(response) {
    var data = JSON.parse(response);
    var items = data.suggestions;
    var names = [], cat;
    // iterate array of suggestions
    for (var i = 0; i < items.length; i++) {
        cat = items[i].categories;
        // iterate array of categories in each suggestion
        for (var j = 0; j < cat.length; j++) {
            names.push(cat[j].name);
        }

    }
    console.log(names.join(","));
}
function myFunction(response) {
    var data = JSON.parse(response);
    var items = data.suggestions;
    var suggestions = items.map(function(item) {
        return item.suggestion;
    });
    console.log(suggestions.join(",")); 
}

工作演示:

请描述一个具体问题。“无法通过它”并没有描述你在哪里被卡住,你观察到了什么,你看到了什么错误,你得到了什么结果,你到底想得到什么帮助,等等…@jfriend00首先我需要将该url中的所有自动建议查询存储到一个数组中。这是我无法做到的。@jfriend00我现在已经提到了。你们能不能给我一些链接,我可以通过使用javascritOK解析url得到自动建议,现在你们展示了一个示例响应,你们到底想从那个响应中提取什么?你想要建议词的列表吗?类别名称列表,过滤词列表?@jfriend00nyes我想要。不,我不想要类别词。我想要“建议”这个词。@s\m-在我写这段代码之前,当我提出上述问题时,你为什么不这么说?很难回答一个没有说出你真正想要什么的问题。对不起。我试图解释这一点。@s_m-second代码示例添加到我的答案中,生成一个建议词列表。我得到的数据就像水一样,我想删除这些标记。我该怎么做