JsonElement 是整数还是浮点数?

是否可以确定 GSONJsonElement实例是整数还是浮点数?


我能够确定它是否是一个数字:


JsonElement value = ...

boolean isNumber = value.getAsJsonPrimitive().isNumber();

但是如何判断它是整数还是浮点数,以便我随后可以使用正确的转换方法呢?任何一个


float f = value.getAsJsonPrimitive().getAsFloat();

或者


int i = value.getAsJsonPrimitive().getAsInt();

编辑:另一个问题可能会回答为什么这可能没有在 GSON 中实现,但这个问题绝对不是它的重复。


鸿蒙传说
浏览 162回答 2
2回答

白衣非少年

到目前为止,我发现的唯一方法是在字符串上使用正则表达式: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 确定为浮点数。

有只小跳蛙

使用类似的东西,因此如果返回 json 对象是浮点数或整数的实例,则可以应用所需的 get:JSONObject jObj = new JSONObject(jString);Object aObj = jObj.get("a");if(aObj instanceof Integer){    System.out.println(aObj);}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java