«Ответ JSON», как вы его описали, не является допустимым JSON.Если это то, что возвращает ваш сервис, это неправильно.Этот текст представляет 3 различных объекта Javascript.Любая из трех строк, взятая отдельно, является допустимой JSON.Все эти строки соединены вместе, что не является допустимым JSON.
Это допустимый JSON, представляющий массив из трех объектов:
[{"First":"Steve","Second":"AK"},
{"First":"Evet","Second":"EV"},
{"First":"Stevens","Second":"SV"} ]
(пробел не имеет значения)
Это недопустимый JSON:
{"First":"Steve","Second":"AK"}
{"First":"Evet","Second":"EV"}
{"First":"Stevens","Second":"SV"}
Так что, если это точная картина ответа, ваш сервис не работает.Сначала исправьте это, затем мы можем ответить на вопрос.
После того, как вы получите ответ в правильной форме, например,
[{"First":"Steve","Second":"AK"},
{"First":"Evet","Second":"EV"},
{"First":"Stevens","Second":"SV"} ]
..., вы сможете отобразить результаты,Но вы хотите отобразить только первый элемент каждого элемента в массиве.Для этого вам нужно отобразить этот исходный массив в другой массив, массив строк, а не массив объектов.Для этого вы можете использовать функцию jQuery map()
.Это выглядит так:
$.map( realArray, function(val, i) { ...map one item here... });
В вашей функции успеха с вашими возвращенными данными вы будете использовать ее следующим образом:
success: function (data){
response($.map(data, function(item) {
return item.First;
}));
},
Функция, которая вызывается по карте, один раздля каждого элемента в оригинальном конверте преобразует элемент типа {"First":"Steve","Second":"AK}
в элемент типа "Steve"
.Для всего массива, например
[{"First":"Steve","Second":"AK"},
{"First":"Evet","Second":"EV"},
{"First":"Stevens","Second":"SV"} ]
.., результат вызова $.map()
равен ["Steve", "Evet", "Stevens"]
.Этот результат передается в функцию response, которая затем отображает этот список элементов в виджете автозаполнения.