No vraptor 2 numa chamada ajax preencho um objeto org.json.simple.JSONArray
com mais alguns objetos JSONArray, estes últimos contendo Strings e inteiros. Então seto este JSONArray num Map<String, Object>
Algo parecido:
private JSONArray converte(List<ListagemLogsModelView> registros) {
JSONArray array = new JSONArray();
for (ListagemLogsModelView s : registros) {
JSONArray subArray = new JSONArray();
subArray.add(s.getIdRegistroErro());
subArray.add(s.getDsTipo());
subArray.add(s.getDsException());
subArray.add(s.getDsMensagemErro());
array.add(subArray);
}
return array;
}
Isto me da um json no formato:
“registrosAsJSONArray”:[[100,“TESTE 1 - EMPRESA 1”,“Tomador”,“Tomador: Cidade: de: para: Curitiba”],[101,“TESTE 2 - EMPRESA 2”,“Tomador”,“Tomador: Cidade: de: para: Curitiba”],[102,“TESTE 3 - EMPRESA 3”,“Tomador”,“Tomador: Cidade: de: para: Curitiba”]]
Estou usando um plugin javascript que funciona perfeitamente com este json.
Meu problema é quando uso o vRaptor 3, pois preciso usar:
result.use(Results.json()).from(getRegistrosAsJSONArray(), "registrosAsJSONArray").serialize();
Recebo a mesma saída, com uma diferença:
registrosAsJSONArray":"[[100,“TESTE 1 - EMPRESA 1”,“Tomador”,“Tomador: Cidade: de: para: Curitiba”],[101,“TESTE 2 - EMPRESA 2”,“Tomador”,“Tomador: Cidade: de: para: Curitiba”],[102,“TESTE 3 - EMPRESA 3”,“Tomador”,“Tomador: Cidade: de: para: Curitiba”]]
As 2 (duas) aspas duplas, uma no início e outra no final do array, fazendo com que o mesmo deixe de ser um array e passe a ser um String, com isto o plugin não consegue identificar os valores e subArrays. Com isto a paginação, feita via ajax, para de funcionar. Já usei todas as conbinações possíveis do result.use(Results.json())
.
O plugin javascript que estou usando é o Datatables para exibição e paginação de tabelas, a paginação é feita via ajax e ele espera um array do formato que mostrei no exemplo do vRaptor 2. Não sei onde posso estar errando ou se existe alguma configuração do vRaptor 3 para que funcione do modo que funciona no vRaptor 2.