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!