是否可以确定 GSONJsonElement实例是整数还是浮点数?我能够确定它是否是一个数字:JsonElement value = ...boolean isNumber = value.getAsJsonPrimitive().isNumber();但是如何判断它是整数还是浮点数,以便我随后可以使用正确的转换方法呢?任何一个float f = value.getAsJsonPrimitive().getAsFloat();或者int i = value.getAsJsonPrimitive().getAsInt();编辑:另一个问题可能会回答为什么这可能没有在 GSON 中实现,但这个问题绝对不是它的重复。
2 回答

白衣非少年
TA贡献1155条经验 获得超0个赞
到目前为止,我发现的唯一方法是在字符串上使用正则表达式:
if (value.getAsJsonPrimitive().isNumber()) {
String num = value.getAsString();
boolean isFloat = num.matches("[-+]?[0-9]*\\.[0-9]+");
if (isFloat)
System.out.println("FLOAT");
else
System.out.println("INTEGER");
}
这正确地将 123 确定为整数,并将 123.45 和 123.0 确定为浮点数。

有只小跳蛙
TA贡献1824条经验 获得超8个赞
使用类似的东西,因此如果返回 json 对象是浮点数或整数的实例,则可以应用所需的 get:
JSONObject jObj = new JSONObject(jString);
Object aObj = jObj.get("a");
if(aObj instanceof Integer){
System.out.println(aObj);
}
添加回答
举报
0/150
提交
取消