![](/img/trans.png)
[英]In Java, how do I most efficiently find an array within a JSON array based on the value of an element of the subarray?
[英]JSON return from a web API can be double or long, how do I most efficiently deal with this in Java?
我正在用Java编写一些代码,并使用JSON Simple包。 我在下面运行此代码
jsonObject.get( "last" ) ;
不幸的是,这可能是很长或两倍,解析此值的最快/最正确的方法是什么?
会是下面这样吗?
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 );
这似乎很荒谬。 必须有更好的方法来做到这一点。 我尝试将long转换为double(我相信我应该可以做到)?但是每次都会出错。 我希望有人可以对我进行正确或更好的方法教育。
实际上,“ last”元素在您处理的所有JSON消息中应具有一致的数据类型。 如果没有适当的规格并且不想进行测试,则可能要long
使用double
。
就您而言,类型可以是任意一种,我认为测试对象类型是一种完美的方法。
附带说明一下,您的if测试实际上应该是:
if (jsonObject.get("last").getClass().equals(Long.class)) {
....
}
使用==
进行字符串比较将无法正常工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.