2016-09-22 6 views
0

次のコードを使用してステータスコードを取得します。jexl式の型キャスト

String statusCode = ((Map<String,String>) product.getStatus().get("abc")).get("code"); 

値を取得するためにjexl式を使用します。

JexlEngine jexlEngine = new JexlEngine(); 
Expression expression = jexlEngine.createExpression("((Map<String,String>) product.getStatus().get(\"abc\")).get(\"description\")"); 
JexlContext jexlContext = new MapContext(); 
jexlContext.set("product", product); 
String statusCode = expression.evaluate(jexlContext); 

「createExpression」でorg.apache.commons.jexl2.parser.ParseExceptionが表示されています。 statusCodeを取得するためにjexl式を作成するにはどうすればいいですか?

答えて

0

JEXL 3.0ではこれは動作します:

JexlExpression expression = jexlEngine.createExpression("product.status[\"abc\"][\"description\"]");