Gson Force verwendet int anstelle von double
Hallo, kann ich gson so konfigurieren, dass er int anstelle von double got data verwendet?
{fn: chat, data: {roomId: 1, text: "Some brabble"}}
Ich habe eine PacketClass, um sie zu deserialisieren:
public class DataPacket {
private String fn;
private Object p; // will be a StringMap
}
und dekodieren wie:
DataPacket pkg = gson.fromJson(message, DataPacket.class);
zur besseren typenhandhabung habe ich ein data pojo für das datapacket.p-feld bekommen, zum beispiel:
public class ChatPacket {
public int roomId;
public String message;
public String from;
// getter & setter
}
Zum Parsen der Daten in das Paket verwende ich BeanMaps wie:
public Object getData(Class<?> pojoClass) {
pojo = pojoClass.newInstance();
BeanMap b = new BeanMap();
b.setBean(pojo);
b.putAll(this.p);
pojo = b.getBean();
}
Das Problem ist nun, dass gson die roomId: 1 in der StringMap auf double 1.0 setzt und die Beanmap versucht, sie in eine Ganzzahl zu analysieren und eine NumberFormatException auszulösen. Hat jemand eine Idee, wie man das behebt?
Danke dir!