java - JSON 简单 : integer parsing

标签 java json rest post

我在 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/

相关文章:

java - 如何将java列表对象的特定字段转换为jsonarray

ruby-on-rails - Rails json 输出载波缩略图版本

asp.net - 如何扩展 MVC4 中的内容协商行为?

java - android:inputType ="textUri"不会启用互联网键盘(w .com 按钮)

java - 无法删除 spring-hibernate 中的实体

java - 在 Windows 任务栏上显示 JDialog

java - Cassandra - 有没有办法限制异步查询的数量?

javascript - 无法在jquery中加载json数据

rest - 如何为非CRUD “commands”设计REST API,例如激活和停用资源?

c# - 如何将 http header 值传递给 WCF 休息服务操作?