【发布时间】:2011-01-30 00:47:02
【问题描述】:
以下代码是用 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;
}
});
此插件在this url 上可用
我知道如何在$.getJSON jQuery 方法中使用JSONArray 来处理JSON 数据。但在这种情况下,那件事不起作用。我想我需要按照上面在这个答案中描述的那样格式化我的数据,以便这个 jQuery 自动完成插件可以理解数据。请告诉我如何才能得到这个...
【问题讨论】:
标签: java autocomplete