Формат JSON для автозаполнения пользовательского интерфейса jQuery

В документации для jQuery UI Autocomplete указано, что для свойства source можно указать URL-адрес, который возвращает предлагаемые элементы в формате JSON. Однако он не уточняет, как должна выглядеть структура этого результата JSON. Может ли кто-нибудь отправить пример? Благодарю!

Ответ 1

Это формат JSON

{source: ["Milan", "Turin", "Venice", "Florence", "Rome"] }

или другой источник

{source: ["c++", "java", "php", "coldfusion", "javascript", "asp", "ruby"]}

Ответ 2

Перемещенный ответ здесь из моего комментария:

[{"label":"mylabel","value":"myvalue"},...] 

Я нашел, что это такой формат, который .autocomplete ищет jquery UI 1.8

Ответ 3

Я звоню в контроллер Java Spring, который просто возвращает информацию ниже (в формате JSOn). Я строю его с помощью JSTL. Но я не знаю, какой бэкэнд вы используете. Но на любом языке вы можете просто вывести некоторый JSON.

Пример:

{"results":[{"id":" Canned","name":" Canned"}, {"id":64,"name":"Added Sulphites"},
{"id":3,"name":"age"}, {"id":"age","name":"age"}, {"id":59,"name":"age group"},
 {"id":"Allergen","name":"Allergen"}, {"id":85,"name":"Anchovies"}]}

Мне не нравится автозаполнение. возможно, вы нашли лучшее решение в flexbox: http://flexbox.codeplex.com/

Ответ 5

Вот пример реального мира, но он использует удаленный источник данных JSONP: http://www.highpoint.edu/admissions/contact.cfm

В поле средней школы используется автозаполнение (убедитесь, что вы выбрали "первокурсник" для типа приема b/c, иначе поле средней школы будет скрыто). Кроме того, изменение выбора страны/штата несколько изменит источник автозаполнения, что может добавить некоторую путаницу.

Кроме того, этот URL-адрес является просто оболочкой для iframe с реальной формой, которую я не могу опубликовать ссылку на b/c. Новые пользователи могут отправлять только один URL-адрес в комментарии.

Ответ 6

с помощью firebug мы можем видеть этот формат для json

[{"id":"Podiceps nigricollis","label":"Black-necked Grebe","value":"Black-necked Grebe"}]

Я использовал json_encode

$a[$x] = array("id" => $row["id"],"label"=>$row["label"],"value"=>$row["value"]);
}
//echo JSON to page
    $response =  json_encode($a);
echo $response;