在jexl表达式中输入类型

时间:2016-09-22 22:50:33

标签: java apache-commons 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);

我在&#39; createExpression&#39;处获得了org.apache.commons.jexl2.parser.ParseException。如何创建jexl表达式以获取statusCode。

1 个答案:

答案 0 :(得分:0)

使用Jexl 3.0可以实现:

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