Dav*_*vid 0 java double json type-conversion long-integer
我正在用java编写一些代码并使用JSON Simple包.我在下面运行此代码
jsonObject.get( "last" ) ;
Run Code Online (Sandbox Code Playgroud)
不幸的是,这可能是长的还是双倍的,解析这个值的最快/最正确的方法是什么?
会是这样的吗?
long lngLast = -1;
double dblLast = -1;
if ( jsonObject.get( "last" ).getClass().getName() == "java.lang.Long" ) {
lngLast = (long) jsonObject.get( "last" ) ;
} else {
dblLast = (double) jsonObject.get("last");
}
if ( lngLast == -1)
System.out.println( dblLast );
else
System.out.println( lngLast );
Run Code Online (Sandbox Code Playgroud)
这似乎很荒谬.必须有更好的方法来做到这一点.我试图将长度转换为双倍(我相信我应该能够做到这一点?)但每次都会出错.我希望有人可以用正确或更好的方式教育我.
实际上,"last"元素应该在您正在处理的所有JSON消息中具有一致的数据类型.如果没有适当的规范而又不想进行测试,你可能想要double超过一个long.
在你拥有的情况下,类型可以是哪种,我认为测试对象类型是一种非常好的方法.
作为旁注,你的if测试应该是:
if (jsonObject.get("last").getClass().equals(Long.class)) {
....
}
Run Code Online (Sandbox Code Playgroud)
使用==for String比较将无法正常工作.
| 归档时间: |
|
| 查看次数: |
985 次 |
| 最近记录: |