2016-10-12 115 views
1

我是java语言的newbiew。 我想从JsonObject获得一个值并将其转换为BigDecimal。 我有以下代码:将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")

谢谢。

+0

当你这样做时会发生什么?提供错误的堆栈跟踪 –

回答

3

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

其次,我不认为将任何对象投射到BigDecimal都会像那样工作。


API ...

下乡从JsonReaderBigDecimal

JsonReader 
    > JsonObject 
     > JsonNumber 
      > BigDecimal 

你可以做

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

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

如果是字符串,请看BigDecimal构造函数。具体来说就是接受String值的那个。

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