Получение значения ключа из ответа json - PullRequest
0 голосов
/ 26 мая 2018

попытка получить значение ключа возвращает ноль, но возвращает все данные в формате json.Ответ добавлен ниже как изображение

   $("#txtbox").autocomplete({
                    source: function (request, response) {
                        $.ajax({
                            type: "POST",
                            contentType: "application/json; charset=utf-8",
                            url: "url.aspx/GetData",
                            data: "{'Prefix':'" + request.term + "'}",
                            dataType: "json",
                            success: function (data) {
                                $.each(data, function (i, field) {
                                    var data = JSON.stringify(data);
                                    console.log(data.diagnosisdesc);
                                });

                            },
                            error: function (result) {
                                alert("Error");
                            }
                        });
                    },
                    minLength: 3
                });

Json Output

1 Ответ

0 голосов
/ 26 мая 2018

В ответе с сервера есть объект: d;объект является массивом, поэтому вам нужно выполнить цикл по массиву, а затем выполнить цикл по каждому из значений массива.Каждое значение массива будет содержать объект, так что вы можете зациклить эти объекты с помощью функции jQuery $.each, если хотите (чтобы не использовать hasOwnProperty для фильтрации итерированного объекта).

Согласно плагину пользовательского интерфейса jQueryвам нужно передать массив в response callback.Каждое значение массива должно быть объектом, содержащим два свойства: value и label, поэтому вам потребуется map ответ от сервера, чтобы создать массив и передать его обратному вызову response.Как задокументировано на странице плагина, вам также необходимо передать значение обратному вызову в случае ошибки.В этом случае пустой массив.

$("#txtbox").autocomplete({
        source: function (request, response) {
            $.ajax({
                type: "POST",
                contentType: "application/json; charset=utf-8",
                url: "url.aspx/GetData",
                data: "{'Prefix':'" + request.term + "'}",
                dataType: "json",
                success: function (data) {
                    response($.map(data.d, function(value) {
                        return {
                            label: value.diagnosisdesc,
                            value: value. diagnosisdesc + '//' + value.diagnosiscode
                        };
                    }));
                },
                error: function (result) {
                    response([]);
                    alert("Error");
                }
            });
        },
        minLength: 3
    });
...