How can I prevent gson from converting integers to doubles

前端 未结 6 677
再見小時候
再見小時候 2020-12-05 07:37

I\'ve got integers in my json, and I do not want gson to convert them to doubles. The following does not work:

@Test
public void keepsIntsAsIs(){
    String          


        
6条回答
  •  暗喜
    暗喜 (楼主)
    2020-12-05 08:27

    This works fine for me:

    private static class DoubleSerializer implements JsonSerializer {
        @Override
        public JsonElement serialize(Double src, Type typeOfSrc, JsonSerializationContext context) {
            return src == src.longValue() ? new JsonPrimitive(src.longValue()) : new JsonPrimitive(src);
        }
    }
    
    Gson gson = new GsonBuilder().registerTypeAdapter(Double.class, new DoubleSerializer()).setPrettyPrinting().create();
    

提交回复
热议问题