我试图让一些自动完成工作。我有这个URL我应该阅读我的JSON From:
http://openscan.addi.dk/2.0/?action=openScan&field=phrase.title&lower=hest&limit=10&outputType=json
当我收到结果时,我尝试将其映射到我的jquery自动完成,我使用以下jquery:
<script type="text/javascript">
$(function () {
function log(message) {
$("<div/>").text(message).prependTo("#log");
$("#log").scrollTop(0);
}
$("#search").autocomplete({
source: function (request, response) {
$.ajax({
url: "http://openscan.addi.dk/2.0/?action=openScan&field=phrase.title&lower=hest&limit=10&outputType=json",
dataType: "jsonp",
success: function (data) {
response($.map(data.scanResponse.term, function (item) {
return {
label: item.name+' ( '+item.hitCount+')',
value: item.name
}
}));
}
});
},
minLength: 2,
select: function (event, ui) {
log(ui.item ?
"Selected: " + ui.item.label :
"Nothing selected, input was " + this.value);
},
open: function () {
$(this).removeClass("ui-corner-all").addClass("ui-corner-top");
},
close: function () {
$(this).removeClass("ui-corner-top").addClass("ui-corner-all");
}
});
});
</script>
<h2>
Demo of autocomplete using OpenScan
</h2>
Start typing below.<br />
<input id="search" />
我的问题是结果它不像我以前见过的有限数量的JSON,它包含$和@属性,我该如何索引它们?
修改 将data.scanResponse更改为data.scanResponse.term
答案 0 :(得分:2)
不确定要显示的确切值是什么,但您可以使用数组语法访问属性,如下所示:
label: item.name["@"]+' ( '+item.hitCount["$"]+')'