如何获得“AviatorEvaluator”数组对象?

问题描述

如何获取“AviatorEvaluator”数组对象属性

如果参数是 mapInArray?如何获得财产?

例如:

        Map<String,Object> param=new HashMap<String,Object>();

        ArrayList<Object> array=new ArrayList<Object>();        
        Map<String,Object> obj=new HashMap<String,Object>();
        obj.put("ccc","cccccc");
        obj.put("ddd","dddddd");
        array.add(obj);

        param.put("a",array);
        System.out.println(param);//{a=[{ccc=cccccc,ddd=dddddd}]}
        System.out.println(AviatorEvaluator.execute("a[0].ccc",param));

线程“main”com.googlecode.aviator.exception.ExpressionSyntaxErrorException 中的异常:语法错误:意外标记“.”,可能忘记插入“;”在 4 处完成最后一个表达式,lineNumber: 1,token : [type='Char',lexeme='.',index=4],解析表达式时:a[0].^^^ 在 com.googlecode.aviator.AviatorEvaluatorInstance.innerCompile(AviatorEvaluatorInstance.java:1494) 在 com.googlecode.aviator.AviatorEvaluatorInstance.compile(AviatorEvaluatorInstance.java:1455) 在 com.googlecode.aviator.AviatorEvaluatorInstance.compile(AviatorEvaluatorInstance.java:1413) 在 com.googlecode.aviator.AviatorEvaluatorInstance.compile(AviatorEvaluatorInstance.java:1400) 在 com.googlecode.aviator.AviatorEvaluatorInstance.execute(AviatorEvaluatorInstance.java:1601) 在 com.googlecode.aviator.AviatorEvaluator.execute(AviatorEvaluator.java:517) 在 com.googlecode.aviator.AviatorEvaluator.execute(AviatorEvaluator.java:529)

解决方法

AviatorEvaluator.execute(" b = a[0]; b.ccc == cccccc",param)