我在 REST 服务中解析 JSON 整数时遇到问题。解析 String 和 double 类型效果很好
Working:
JSONParser parser = new JSONParser();
Object obj = null;
try {
obj = parser.parse(input);
} catch (ParseException e) {
e.printStackTrace();
}
JSONObject jsonObject = (JSONObject) obj;
//---------------
String uName = (String) jsonObject.get("userName");
double iPrice = (Double) jsonObject.get("itemPrice");
不工作:
int baskId = (Integer) jsonObject.get("basketId");
我尝试转换basketId
在我的篮子类中转换为 String,然后它功能正常,所以代码没问题,并且链接正常工作,但是,当我将其转换回 int 时,我收到 500 服务器错误。我使用它创建一个带有一些数字 ID 的新购物篮,因此我使用 @POST 注释,有效负载中的 JSON 如下所示:
{"basketId":50}
我不明白...
编辑:
我明白了...JSON simple 只接受更大类型的 Java 原语,所以整数和浮点是禁忌
在你的代码中jsonObject.get("basketId");
返回长整型
因此,使用 Long 进行类型转换将帮助您解决错误(Long)jsonObject.get("basketId");
如果您确实需要 Integer,请键入将其转换为 inetger,如下所示
((Long)jsonObject.get("basketId")).intValue()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)