如何使用方言“Mvel”检查drools中的if语句值?

我下面有一个json


"root":[

  {

    "refDataId": 1,

    "children": [

      {

        "refDataId": 20

      },

      {

        "refDataId": 99,

        "otherValue": "Facility"

      }

    ]

  },

  {

    "refDataId": 2,

    "children": [

      {

        "refDataId": 30

      },

      {

        "refDataId": 99,

        "otherValue": "Officer"

      }

    ]

  }

]

如何使用规则 drools 中的 if 语句检查上面的值?


我编辑了问题。这是为了流口水规则


例如我的规则是:


rule "test"

    when

        RuleEngine(inputObject!.adultHealth!.children contains 99)

    then

        info("children contains value 99");

end

以及如何检查的价值"refDataId": 99,和"otherValue": "Officer"?


如果该值必须从第二个子 json 获取 "refDataId": 2,


冉冉说
浏览 227回答 2
2回答

UYOU

您可以使用我使用过的任何 json 解析器来提取数据org.json以下代码尝试从您的 json 数据中查找 OFFICER。JSONObject obj = new JSONObject(jsonString);    JSONArray objArray = obj.optJSONArray("root");    for (Object jo : objArray) {        JSONObject arrayElement = new JSONObject(jo.toString());        JSONArray childrenArray = arrayElement.getJSONArray("children");        for (Object child : childrenArray) {            JSONObject childJo = new JSONObject(child.toString());            if (Integer.parseInt(childJo.get("refDataId").toString()) == 99) {                if (childJo.get("otherValue").toString().equals("Officer")) {                    System.out.println("Success Officer Found !");                }            }        }    }

料青山看我应如是

在这里查看使用 drools Fluent API 的嵌套 JSON 迭代,在我看来,创建与 JSON 结构相对应的数据对象就足够了。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java