将值从 JsonObject 转换为 BigDecimal

Posted

技术标签:

【中文标题】将值从 JsonObject 转换为 BigDecimal【英文标题】:Convert value from JsonObject to BigDecimal 【发布时间】:2016-10-12 18:51:00 【问题描述】:

我是java语言的新手。 我想从JsonObject 中获取一个值并将其转换为BigDecimal。 我有以下代码:

JsonReader jsonReader;
try 
    jsonReader = Json.createReader(httpRequest.getReader());
 catch (IOException e) 
    return Response.serverError().entity("Problem reading json body").build();


JsonObject jsonObj = jsonReader.readObject();

Map<String, Object> paramMap = UtilMisc.toMap("productId", productId, "internalName",
        jsonObj.getString("internalName"), "productName", jsonObj.getString("productName"), "productTypeId",
        jsonObj.getString("productTypeId"), "login.username", username, "login.password", password,
        "description", jsonObj.getString("description"), "longDescription", jsonObj.getString("longDescription"),
           "productHeight", (BigDecimal)jsonObj.get("productHeight"));

我想做的是类似于(BigDecimal)jsonObj.get("productHeight")

谢谢。

【问题讨论】:

当你这样做时会发生什么?提供错误的堆栈跟踪 【参考方案1】:

首先,jsonObj.get 不是方法,所以肯定是错误所在。

其次,我认为将任何对象转换为 BigDecimal 不会像那样工作。


阅读API...

JsonReader 下降到BigDecimal

JsonReader 
   > JsonObject
       > JsonNumber
          > BigDecimal 

你可以的

jsonObj.getJsonNumber("productHeight").bigDecimalValue()

这假定productHeight 是一个数值,而不是一个字符串。

如果是字符串,请查看BigDecimal 构造函数。特别是采用 String 值的那个。

new BigDecimal(jsonObj.getString("productHeight"))

【讨论】:

以上是关于将值从 JsonObject 转换为 BigDecimal的主要内容,如果未能解决你的问题,请参考以下文章

将值从字段转换为绝对值

在字典中,将值从字符串转换为整数

将值从字符转换为数字或从数字转换为字符

将值从 datagridview 转换为文本框

MySQL:无法更新 JSON 列以将值从浮点数转换为整数

将值从字符串转换为流时出错