将值从 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的主要内容,如果未能解决你的问题,请参考以下文章