[英]Servlet response data for autocomplete
以下代碼在PHP中。 我想在Java中做同樣的事情。 請告訴我如何在Java中生成這種類型的數組或集合。 我需要它來響應JSON自動完成。
<?php
$q = strtolower($_GET["q"]);
if (!$q) return;
$items = array(
"Peter Pan"=>"peter@pan.de",
"Molly"=>"molly@yahoo.com",
"Forneria Marconi"=>"live@japan.jp",
"Master Sync"=>"205bw@samsung.com",
"Dr. Tech de Log"=>"g15@logitech.com",
"Don Corleone"=>"don@vegas.com",
"Mc Chick"=>"info@donalds.org",
"Donnie Darko"=>"dd@timeshift.info",
"Quake The Net"=>"webmaster@quakenet.org",
"Dr. Write"=>"write@writable.com"
);
$result = array();
foreach ($items as $key=>$value) {
if (strpos(strtolower($key), $q) !== false) {
array_push($result, array(
"name" => $key,
"to" => $value
));
}
}
echo json_encode($result);
?>
我想要此PHP代碼的Java版本,因為此代碼以JSON格式返回。 在
{name=>"Peter Pan",
to=>"peter@pan.de";
.....}
如您所見:
array_push($result, array(
"name" => $key,
"to" => $value
));
可以通過以下jQuery代碼處理:
$('#inputItem').autocomplete('<c:url value="/json/itemautocomplete.do" />', {
multiple: true,
mustMatch: true,
autoFill: true,
highlight: false,
scroll: true,
dataType: "json",
parse: function(data){
var array = new Array();
for(var i = 0; i<data.length; i++){
array[array.length] = {data: data[i], value: data[i].name, result: data[i].name};
}
return array;
}
});
此插件可在此網址上找到
我知道如何通過在$.getJSON
jQuery方法中使用JSONArray
處理JSON數據。 但是在這種情況下,該功能不起作用。 我想我需要按照上述答案中的說明格式化數據,以便此jQuery自動完成插件可以理解數據。 請告訴我我怎么能得到這個...
在Java中,您將使用Map<String, String>
:
Map<String, String> items = new HashMap<String, String>();
items.put("Peter Pan", "peter@pan.de");
String petersAddress = items.get("Peter Pan");
您可以遍歷鍵集:
for ( String key : items.keySet() ) {
if ( key.toLowerCase().startsWith(input) ) {
//add to list of potential matches
}
}
感謝您的支持。
我已經使用以下代碼處理了數據:-在Servlet中:-
LinkedList arr = new LinkedList();
arr.add("Peter Pan <peter@pan.de>");
arr.add("Molly <molly@yahoo.com>");
arr.add("Forneria Marconi <live@japan.jp>");
Iterator iter = arr.iterator();
while(iter.hasNext()){
out.println(iter.next());
}
在JQuery中:
function itemAutocomplete(){
$('#inputItem').autocomplete('<c:url value="/json/itemautocomplete.do?mi=' + $('#sltMainItem').val() + '&si=' + $('#sltSubItem').val() + '" />', {
json: true
});
}
感謝您在我身邊
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.