Een json toewijzen met $ in resultaat voor automatische aanvulling van jQuery

Ik probeer om wat automatisch aanvullen te laten werken. Ik heb deze URL. Ik zou mijn JSON moeten lezen van:

http://openscan.addi.dk/2.0/?action=openScan&field=phrase.title&lower=hest&limit=10&outputType=json

Wanneer ik het resultaat ontvang, probeer ik het in mijn jQuery autocomplete in te delen, ik gebruik de volgende 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>
    

Demo of autocomplete using OpenScan

Start typing below.
<input id="search" />

Mijn probleem is het resultaat, het is niet zoals het beperkte aantal JSON dat ik eerder heb gezien, het bevat $ en @ voor eigenschappen, hoe kan ik ze indexeren?

Edit Changed data.scanResponse to data.scanResponse.term

0
Er is niets mis met die eigenschapnamen; eigenschapsnamen kunnen elke tekenreekswaarde zijn. Een mogelijk probleem is dat die site niet lijkt te reageren met JSONP - het is gewoon JSON. Is dat uw domeinnaam (het domein van waaruit uw pagina's met die code worden weergegeven)?
toegevoegd de auteur Pointy, de bron

1 antwoord

Weet u niet zeker wat exacte waarden zijn die u wilt weergeven, maar u kunt toegang krijgen tot eigenschappen met behulp van de syntaxis van de array, zoals deze:

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