【发布时间】:2017-09-19 20:37:55
【问题描述】:
我需要在 String 属性中读取整数和双精度,但 GSON 将每个 int 视为双精度(是的,我知道它是 JSON 标准)。
所以例如我有课:
public class MyObject {
String value;
}
在某些情况下,我有这个 JSON - {"value": 1},有时 - {"value": 2.4}。
我必须按原样显示这些值,但第一个值将被读取为1.0。
我尝试使用JsonDeserializer 和TypeAdapter,两者都有类似getAsString 的方法,并且它们都首先将值转换为双精度然后返回。
方法在JsonPrimitive 中的样子:
@Override
public String getAsString() {
if (isNumber()) {
return getAsNumber().toString();
} else if (isBoolean()) {
return getAsBooleanWrapper().toString();
} else {
return (String) value;
}
}
您可以在此处查看isNumber。
那么是否有可能以某种方式解决这个问题?
【问题讨论】: