java - 如何使用方言“Mvel”检查流口水中的 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,
解决方案
您可以使用我使用过的任何 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 !");
}
}
}
}
推荐阅读
- python - 模板渲染期间的 Django NoReverseMatch 错误
- java - Maven 如何满足 pom.xml 中的 GroupID:Artifact 依赖项?
- python - 如何在这个 pyqt5 应用程序中动态地将标题添加到表中?
- powershell - 将两个将出现在列中的命令合并到一个 csv 文件中
- c# - 在 C# 中按特定顺序编写 XML 属性和命名空间声明?
- python - 在 Tkinter GUI 类中调用 Ptoaster 函数
- python - 如何定义 tesseract_cmd 以在 AWS Lambda 函数中使用 Tesseract-OCR
- flutter - 单击时包裹在 Transform.translate 中的 TextField 不聚焦
- python - 以相反的顺序打印列表
- asp.net-core - IIS 上的 ASP.NET Core grpc-Web 返回 404