java - 自动完成的 Servlet 响应数据

标签 java 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;


            }

        });

此插件可在this url上使用

我知道如何通过在 $.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
  }
}

关于java - 自动完成的 Servlet 响应数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4829325/

相关文章:

java - RestEASY 拦截器未被调用

javascript - JQuery 自动完成源未更新

jquery - ZendX 是否仍然处于事件状态(特别是 ZendX_JQuery)?

java - JEE容器中数据源连接的拦截连接池

java - SWT-App 从可运行的 .jar 或外部文件夹加载 .swf 文件

c# - Google 建议文本框(自动完成)

html - Sublime Text 2 的图像源补全

java - Neo4j Lucene索引-使用通配符执行模糊搜索

java - ModelMapper,将实体列表映射到 DTO 对象列表

java - "Happens-before"Java相关volatile字段说明