API返回整数= 129 或小数,例如0.28 以下是API的回复:
"ETH":{"USD":730.06}"
我正在尝试解析JSON 以下内容:
Double ethPrice = (double) arr.get("USD");
如果返回的数据是一个带小数的数字但是如果它是一个整数,那么这是有效的,我得到了:
java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Double
我没有对响应做任何数学函数,因此,字符串类型也可以。
我觉得这是一个我应该已经解决的小问题。但现在花了一点时间,不想再浪费了。 任何帮助都会很棒。
编辑:
请求解析代码片段:
JSONObject obj = new JSONObject(result);
JSONObject arr = obj.getJSONObject("ETH");
Double ethPrice = (double) arr.get("USD");
其中result是一个字符串(在异步任务内 - onPostExecute(String result))
答案 0 :(得分:2)
如果您确定获得Double
,则可以使用arr.getDouble("USD")
代替arr.get("USD")
。
您的代码将成为下一个代码:
JSONObject obj = new JSONObject(result);
JSONObject arr = obj.getJSONObject("ETH");
Double ethPrice = arr.getDouble("USD");