Gson force use int em vez de double
Oi eu posso configurar o gson que ele usa int em vez de duplo tem dados como:
{fn: chat, data: {roomId: 1, text: "Some brabble"}}
Eu tenho um PacketClass para desserializá-lo para:
public class DataPacket {
private String fn;
private Object p; // will be a StringMap
}
e decodificar como:
DataPacket pkg = gson.fromJson(message, DataPacket.class);
para melhor tipo de manejo eu tenho um data pojo para o campo DataPacket.p por exemplo:
public class ChatPacket {
public int roomId;
public String message;
public String from;
// getter & setter
}
para analisar os dados para o pacote eu uso BeanMaps como (eu removi o tratamento de erros, etc):
public Object getData(Class<?> pojoClass) {
pojo = pojoClass.newInstance();
BeanMap b = new BeanMap();
b.setBean(pojo);
b.putAll(this.p);
pojo = b.getBean();
}
O problema agora é que o gson faz o roomId: 1 para um double 1.0 no StringMap e o beanmap tenta analisá-lo para um inteiro e lança um NumberFormatException, alguém tem uma idéia de como corrigir isso?
Obrigado!