VRaptor - montando JSON estilo Datatables

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:

[code] public class TableModel {

   private String sEcho;
   private Long iTotalRecords;
   private int iTotalDisplayRecords;
   private List<AaData> aaData;

}
[/code]
e

[code] public class AaData {

   private String identifier;
   private String value;
}

[/code]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:

[code] @Get("/nota/json")
public void json(String sEcho, int iDisplayStart, int iDisplayLength){
List notas = dao.list(iDisplayStart, iDisplayLength);
Long total = dao.countTotal();

	result.use(Results.json()).withoutRoot().from(builder.build(notas, sEcho, total)).recursive().serialize();
}

[/code]

Obrigado

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.