VRaptor - montando JSON estilo Datatables

1 resposta
d34d_d3v1l

Galera,

a ideia é montar este JSON:

{
	    "sEcho": "1",
	    "iTotalDisplayRecords": 1,
	    "aaData": [
	    "vencimento" : "08/06/2013",
	    "empresa" : "porto seguro",
	    "descricao" : "nota teste",
            "valor" : "81.25"],
	    "iTotalRecords": 1
    }
Mas estou montando:
{
	    "sEcho": "1",
	    "iTotalDisplayRecords": 1,
	    "aaData": [
	    {"identifier": "vencimento","value": "08/06/2013"},
	    {"identifier": "empresa","value": "porto seguro"},
	    {"identifier": "descricao","value": "nota teste"},
	    {"identifier": "valor","value": "81.25"}],
	    "iTotalRecords": 1
    }
O modelo que estou tentando chegar ao resultado consiste em duas classes. TableModel e AaData:
public class TableModel {

	   private String sEcho;
	   private Long iTotalRecords;
	   private int iTotalDisplayRecords;
	   private List<AaData> aaData;
	
   }
e
public class AaData {

	   private String identifier;
	   private String value;
    }
Queria fazer de maneira mais clean, sem ter que fazer MAPs ou Listas dentro de listas. tem como ? abraço e vlw pela ajuda

**EDIT**
É assim que o JSON do attributo MAP aaData fica:

{
		"sEcho": "1",
		"iTotalDisplayRecords": 1,
		"iTotalRecords": 1,
		"aaData": [
			["valor","81.25"],
			["empresa","porto seguro"],
			["vencimento","08/06/2013"],
			["descricao","nota teste"]
		]
	}

**EDIT 2**
Colocando o código do controller onde gero o JSON:

@Get("/nota/json")
	public void json(String sEcho, int iDisplayStart, int iDisplayLength){
		List<Nota> notas = dao.list(iDisplayStart, iDisplayLength);
		Long total = dao.countTotal();
				
		result.use(Results.json()).withoutRoot().from(builder.build(notas, sEcho, total)).recursive().serialize();
	}

Obrigado

1 Resposta

Rafael_Guerreiro

o aaData é, na verdade, um array de array de STRING.

Ou seja, trabalhe com esses tipos mesmo, faça uma conversão do objeto para list de String e coloque isso em uma outra lista. Que é o aaData.

Criado 9 de junho de 2013
Ultima resposta 10 de jun. de 2013
Respostas 1
Participantes 2