3

我是java语言的新手。我想从 a 中获取一个值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")

谢谢你。

4

1 回答 1

4

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

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


读取API ...

从 往下JsonReaderBigDecimal

JsonReader 
   > JsonObject
       > JsonNumber
          > BigDecimal 

你可以做

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

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

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

new BigDecimal(jsonObj.getString("productHeight"))
于 2016-10-12T21:42:53.953 回答