将json映射为$ in in result以进行jquery自动完成

时间:2012-06-23 20:21:05

标签: javascript jquery json

我试图让一些自动完成工作。我有这个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

1 个答案:

答案 0 :(得分:2)

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

label: item.name["@"]+' ( '+item.hitCount["$"]+')'