@Override
  public Map<String, Object> read(JsonReader in) throws IOException {
    Map<String, Object> map = delegate.read(in);
    for (Map.Entry<String, Object> entry : map.entrySet()) {
      if (entry.getValue() instanceof Double) {
        entry.setValue(Double.class.cast(entry.getValue()).intValue());
      }
    }
    return map;
  }
Deals with scenario where Gson Object type treats all numbers as doubles.
gson/src/main/java/feign/gson/DoubleToIntMapTypeAdapter.java