Gson gson = new Gson();
System.out.println(gson.fromJson("1", Object.class)); //output:1.0
System.out.println(gson.fromJson("1", String.class)); //output:1
System.out.println(gson.fromJson("1", Integer.class)); //output:1
我正在尝试自定义反序列化器来修复它,但仍然无法正常工作:
Gson gson = new GsonBuilder().registerTypeAdapter(Object.class,new JsonDeserializer<Object>() {
@Override
public Object deserialize(JsonElement json, Type typeOfT,JsonDeserializationContext context)throws JsonParseException {
return json.getAsInt();
}
}).create();
System.out.println(gson.fromJson("1", Object.class)); //still 1.0
我是不是做错了什么?
最佳答案
JSON 中没有整数。 1.0 和 1 是一样的,除了 1.0 是显式的。
关于java - 为什么Gson会反序列化1为1.0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12283863/