从Api解析响应 - 返回的数据被视为double和Integer - 如何解析

时间:2017-12-13 16:01:44

标签: android json api parsing

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))

1 个答案:

答案 0 :(得分:2)

如果您确定获得Double,则可以使用arr.getDouble("USD")代替arr.get("USD")

您的代码将成为下一个代码:

JSONObject obj = new JSONObject(result);
JSONObject arr = obj.getJSONObject("ETH");
Double ethPrice = arr.getDouble("USD");