Данные ответа сервлета для автозаполнения - PullRequest
0 голосов
/ 28 января 2011

Следующий код на 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);
?>

Обновление:

Мне нужна Java-версия этого кода PHP, потому что этот код возвращается в формате 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;


            }

        });

Этот плагин доступен на этот URL

Я знаю, как обрабатывать данные JSON, используя JSONArray в $.getJSON методе jQuery. Но эта вещь не работает в этом случае. Я думаю, что мне нужно отформатировать мои данные, как я описал выше в этом ответе, чтобы этот плагин автозаполнения jQuery мог понять данные. Пожалуйста, скажите мне, как я могу получить это ...

Ответы [ 2 ]

1 голос
/ 28 января 2011

В 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
  }
}
0 голосов
/ 29 января 2011

Спасибо за вашу поддержку.

Я обработал данные, используя этот код: - В сервлете: -

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
        });
    }

Спасибо за то, что вы здесь для меня Shams

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...