Gson fuerza uso int en lugar de doble

Hola, puedo configurar gson para que use int en lugar de obtener datos como:

{fn: chat, data: {roomId: 1, text: "Some brabble"}}

Obtuve un PacketClass para deserializarlo a:

public class DataPacket {
  private String fn;
  private Object p; // will be a StringMap
}

y decodificar como

DataPacket pkg = gson.fromJson(message, DataPacket.class);

para un mejor manejo de tipos, obtuve un pojo de datos para el campo DataPacket.p, por ejemplo:

public class ChatPacket {
  public int roomId;
  public String message;
  public String from;
  // getter & setter
}

Para analizar los datos del paquete, uso BeanMaps como (eliminé el manejo de errores, etc.):

public Object getData(Class<?> pojoClass) {
  pojo = pojoClass.newInstance();
  BeanMap b = new BeanMap();
  b.setBean(pojo);
  b.putAll(this.p);
  pojo = b.getBean();
}

El problema ahora es que gson crea el roomId: 1 a un doble 1.0 en el StringMap y el beanmap intenta analizarlo en un entero y lanza una NumberFormatException, ¿alguien tiene una idea de cómo solucionarlo?

¡Gracias!

Respuestas a la pregunta(1)

Su respuesta a la pregunta