Javascript 如何从我的Google自定义搜索API AJAX调用中提取JSON数据?
我会尽量让它简单快捷 我正在使用谷歌的自定义搜索api来搜索我的网站。我使用一个非常基本的AJAX调用发布搜索查询Javascript 如何从我的Google自定义搜索API AJAX调用中提取JSON数据?,javascript,json,ajax,google-api,google-custom-search,Javascript,Json,Ajax,Google Api,Google Custom Search,我会尽量让它简单快捷 我正在使用谷歌的自定义搜索api来搜索我的网站。我使用一个非常基本的AJAX调用发布搜索查询 var search_term = 'mysite.com'; var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200)
var search_term = 'mysite.com';
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
var response = this.responseText;
console.log(response);
};
};
xhttp.open("GET", search_term, true);
xhttp.send();
它按预期工作。我在console.log中记录this.responseText。语法返回类似于belowI的内容,并将其缩短很多,以使问题更易于阅读
// API callback
hndlr({
"kind": "customsearch#search",
"url": {
"type": "application/json"
},
"queries": {
"request": [
{
"title": "Google Custom Search - site:www.mysite.com.au gallery",
"totalResults": "150",
"searchTerms": "site:www.mysite.com.au gallery",
"count": 10,
"startIndex": 1,
"inputEncoding": "utf8",
"outputEncoding": "utf8",
"safe": "off",
"cx": "006655164624831528:nz6utbz01b0"
}
]
}
});
语法看起来像一个函数,我想提取内部JSON对象并使用该数据。我试过用谷歌搜索这个,但没有成功,可能是因为我不知道到底要搜索什么。
我该怎么做
非常感谢你的帮助
谢谢大家
Moe我们也可以使用jquery来实现这个
<script type="text/javascript" src="jquery-1.7.1.js"></script>
<script type="text/javascript" >
$(document).ready(function(){
var data = GetURLParameter('search_data'); //that data we passed for google search
$.getJSON('https://www.googleapis.com/customsearch/v1?key=your key&cx=YOUR CX&q='+data, function(resp)
{
var i=0;
while(i<=10)
{
var title=resp.items[i].title;
var link=resp.items[i].link;
alert(title);
i++;
}
});
});
function GetURLParameter(sParam)
{
var sPageURL = window.location.search.substring(1);
var sURLVariables = sPageURL.split('&');
for (var i = 0; i < sURLVariables.length; i++)
{
var sParameterName = sURLVariables[i].split('=');
if (sParameterName[0] == sParam)
{
return decodeURIComponent(sParameterName[1]);
}
}
}
</script>
如果您的响应以这种格式返回,那么它已经被解析了。只要访问它。this.responseText.querys.request[0]。titlePerfect。谢谢@trevster34。成功了。我还包括一个hndlr函数,并且能够使用response.items符号访问数据。当然,干杯。当心。