将值从 JsonObject 转换为 BigDecimal

Convert value from JsonObject to BigDecimal

我是 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")的事情。

谢谢。

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

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


正在阅读 API...

JsonReader 下降到 BigDecimal

JsonReader 
   > JsonObject
       > JsonNumber
          > BigDecimal 

你可以做到

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

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

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

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