2016-10-12 10 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は方法ではないので、間違いなくエラーです。

第2に、私はどんなオブジェクトもBigDecimalにキャストしてもそのように動作するとは思わない。


読むAPI ...あなたはこれがproductHeightが数値であることを前提としてい

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

行うことができますJsonReaderからBigDecimal

JsonReader 
    > JsonObject 
     > JsonNumber 
      > BigDecimal 

まで行く

、および文字列ではなく、tho ugh。

文字列の場合は、BigDecimalコンストラクタを参照してください。具体的には、String値をとります。

new BigDecimal(jsonObj.getString("productHeight")) 
関連する問題