[jboss-jira] [JBoss JIRA] (DROOLS-5234) I use jsonString as the parameter of the function and i get a error:Syntax error on tokens, delete these tokens

xin zhang (Jira) issues at jboss.org
Mon Apr 13 04:42:00 EDT 2020


xin zhang created DROOLS-5234:
---------------------------------

             Summary: I use jsonString as the parameter of the function and i get a error:Syntax error on tokens, delete these tokens
                 Key: DROOLS-5234
                 URL: https://issues.redhat.com/browse/DROOLS-5234
             Project: Drools
          Issue Type: Bug
          Components: build
    Affects Versions: 7.22.0.Final
            Reporter: xin zhang
            Assignee: Ant Stephenson


version : `7.22.0.Final`
- this is my rule:
```
package org.zhangnix.droolsdemo;
import org.zhangnix.droolsdemo.model.DroolsContext;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import java.math.BigDecimal;
import java.util.List;
import java.util.Date;
import java.lang.Boolean;
import java.lang.String;
import java.lang.Integer;
function boolean checkGoodsCount(Integer currentGoodsCount,String jsonString) {
        JSONObject context = JSON.parseObject(jsonString);
        int goodsCount = context.getInteger("goodsCount");
        String compareType = context.getString("compareType");
        switch (compareType) {
            case "M":
                return currentGoodsCount > goodsCount;
            case "E":
                return currentGoodsCount == goodsCount;
            case "EM":
                return currentGoodsCount >= goodsCount;
            default:
                return false;
        }
    }

rule "Activity conditions"
when
$droolsContext:DroolsContext();
eval(checkGoodsCount($droolsContext.getCurrentGoodsCount(),'{"compareType":"EM","goodsCount":3}'));
then
end
```
I use jsonString as the parameter of the function and i get a error:

> Syntax error on tokens, delete these tokens

this is my generate java file:
```
public static boolean eval0( org.zhangnix.droolsdemo.model.DroolsContext $droolsContext  
                                     ) throws java.lang.Exception {
    Boolean $eval$result$ = ( checkGoodsCount($droolsContext.getCurrentGoodsCount(),"{"compareType":"EM","goodsCount":3}") );
    return $eval$result$ == null ? false : $eval$result$.booleanValue();
}
```

When parsing jsonString, there is no backslash (\\) before the quotes. Please tell me what should I do to pass jsonString correctly.



--
This message was sent by Atlassian Jira
(v7.13.8#713008)


More information about the jboss-jira mailing list