Estou com dificuldade para pegar a resposta de uma requisição via JSON feita pelo autocomplete. A chamada e a resposta são feitas com sucesso, o meu problema é o processamento da resposta.
Estou usando o VRaptor: vraptor-3.1.2-20100214.025052-1.jar.
Segue abaixo o código do controller:
@Get
@Path("/viagem/autocomplete.json")
public void autoComplete(String name_startsWith) {
System.out.println("AutoCompletar");
List<Cliente> lista = clienteService.buscar(name_startsWith);
result.use(Results.json()).from(lista).serialize(); //Nessa versão do VRaptor NÃO tem o método >>>.withoutRoot()<<<.
}
Código javaScript:
<script>
$(function() {
$( "#txtCliente" ).autocomplete({
source: function( request, response ) {
$.ajax({
url: "<c:url value='/viagem/autocomplete.json'/>",
dataType: "json",
data: {
featureClass: "P",
style: "full",
maxRows: 12,
name_startsWith: request.term
},
success: function( data ) {
response( $.map( data, function( item ) {
return {
label: item.nome, //Aqui está errado como estou pegando a resposta
value: item.nome, //Aqui está errado como estou pegando a resposta
id: item.id //Aqui está errado como estou pegando a resposta
}
}));
}
});
},
minLength: 2,
select: function(event, ui ) {
//alert("select" + ui.item.id); //Aqui está errado como estou pegando a resposta
$('#idCliente').val(ui.item.id); //Aqui está errado como estou pegando a resposta
},
open: function() {
$( this ).removeClass( "ui-corner-all" ).addClass( "ui-corner-top" );
},
close: function() {
$( this ).removeClass( "ui-corner-top" ).addClass( "ui-corner-all" );
}
});
});
</script>
Abaixo o código da resposta:
{"list": [
[
421,
"ASA AGRO INDUSTRIAL DE ALIMENTOS S A"
],
[
8802,
"ASA BRANCA DO APOLLO MERCEARIA LTDA"
],
[
9626,
"ASA BRANCA DO APOLLO MERCEARIA LTDA"
],
[
9496,
"ASA BRANCA INDL. COML. E IMPORTADORA LTDA"
],
[
14086,
"ASA BRANCA INDL. COML. E IMPORTADORA LTDA"
],
[
15121,
"ASFRAN - COMERCIAL DE ALIMENTOS LTDA."
],
[
15481,
"ASSIS & ASSIS SUPERMERCADO LTDA"
],
[
13131,
"ASSOCIACAO DOS SERVIDORES DA PREFEITURA M DE COLOMBO"
],
[
403,
"ASTOR NERE DE SOUZA ME"
],
[
12092,
"ASTRONAUTA DISTRIBUIDORA DE ALIMENTOS LTDA"
],
[
14518,
"ASUN COM GEN ALIM LTDA"
]
]}
Na tela o plugin autocomplete apresenta apenas um item como resultado, especificado como “UNDEFINED”.