eg" /> eg" /> eg"/>

how to get "AviatorEvaluator" array object?

334 views Asked by At

how to get "AviatorEvaluator" array object property?

if the param is mapInArray? how to get the property?

<com.googlecode.aviator.AviatorEvaluator>

eg:

        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));

Exception in thread "main" com.googlecode.aviator.exception.ExpressionSyntaxErrorException: Syntax error: unexpect token '.', maybe forget to insert ';' to complete last expression at 4, lineNumber: 1, token : [type='Char',lexeme='.',index=4], while parsing expression: a[0].^^^ at com.googlecode.aviator.AviatorEvaluatorInstance.innerCompile(AviatorEvaluatorInstance.java:1494) at com.googlecode.aviator.AviatorEvaluatorInstance.compile(AviatorEvaluatorInstance.java:1455) at com.googlecode.aviator.AviatorEvaluatorInstance.compile(AviatorEvaluatorInstance.java:1413) at com.googlecode.aviator.AviatorEvaluatorInstance.compile(AviatorEvaluatorInstance.java:1400) at com.googlecode.aviator.AviatorEvaluatorInstance.execute(AviatorEvaluatorInstance.java:1601) at com.googlecode.aviator.AviatorEvaluator.execute(AviatorEvaluator.java:517) at com.googlecode.aviator.AviatorEvaluator.execute(AviatorEvaluator.java:529)

1

There are 1 answers

1
zzp On

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