繁体   English   中英

从Web API返回的JSON可能是两倍还是很长,如何用Java最有效地处理呢?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM