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!

questionAnswers(1)

yourAnswerToTheQuestion