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!

Antworten auf die Frage(1)

Ihre Antwort auf die Frage