0

我试图让一些自动完成工作。我有这个 URL 我应该从以下位置读取我的 JSON:

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

4

1 回答 1

2

不确定要显示的确切值是什么,但您可以使用数组语法访问属性,如下所示:

label: item.name["@"]+' ( '+item.hitCount["$"]+')'
于 2012-06-23T20:30:14.127 回答