Разбор JSON в JQuery Автозаполнение - PullRequest
0 голосов
/ 18 февраля 2011

Я использовал код Саймона Ватли для плагина автозаполнения. Теперь мне нужна помощь в разборе данных JSON. Вот мой код:

    $("#country").autocomplete("data/country.cfm",{
        minChars:1,
        delay:0,
        autoFill:false,
        matchSubset:false,
        matchContains:1,
        cacheLength:10,
        selectOnly:1,
        dataType: 'json',
        extraParams: {
                format: 'json'
        },
        parse: function(data) {
            var parsed = [];
            for (var i = 0; i < data.length; i++) {
                 parsed[parsed.length] = {
                data: data[i],
                value: data[i].NAME,
                result: data[i].NAME
                 };
            } 
            return parsed;
        },
        formatItem: function(item) {
            return item.NAME;
        }
   });

Например, я получаю это как строку jSON:

[{"name":"country1"},{"name":"country2"},{"name":"country3"}]

То, что я хотел бы получить в качестве результата, это, конечно, значения country1, country2, country3. Тем не менее, то, что я получаю прямо сейчас в текстовом поле, когда я печатаю (например, я набираю "cou"), является "неопределенным". Если я нажму на это, в текстовом поле отобразится целая строка [{"name": "country1"}, {"name": "country2"}, {"name": "country3"}].

Я тоже пробовал это, но все еще не работает: jquery autocomplete, как проанализировать json-запрос с информацией url? jquery автозаполнение с ответом json

Помогите, пожалуйста. Спасибо!

1 Ответ

0 голосов
/ 18 февраля 2011

Вы можете просто использовать

var countries = JSON.parse(data);

Поскольку вы используете jQuery, все же немного безопаснее использовать jQuery.parseJSON(), если в браузере нет нативногопарсер:

var countries = jQuery.parseJSON(data);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...