我在 REST 服务中解析 JSON 整数时遇到问题。解析 String 和 double 类型工作正常
工作:
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 原语,所以整数和 float 是禁忌
最佳答案
在您的代码中 jsonObject.get("basketId");
返回 Long
所以使用 Long 进行类型转换可以帮助您解决错误
(Long)jsonObject.get("basketId");
如果您确实需要 Integer,则按如下方式将其转换为 inetger
((Long)jsonObject.get("basketId")).intValue()
关于java - JSON 简单 : integer parsing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29770329/