基于json的Java库,用于规则匹配[关闭]

问题描述 投票:0回答:1

我想开发一个JSON规则架构和一个规则评估器,我可以在其中定义和/或/或不对单个条件进行条件比较以进行属性比较。例如,如果customerType为PRIMARY且语言环境为en-US,则以下规则将评估为true。我打算用Java编写我的自定义规则评估器,该评估器将规则JSON与请求参数一起作为输入,并根据匹配与否将评估结果为true或false。我保持我的架构通用,并开放扩展。例如,如果您将来希望支持“ OR”条件,或者将来希望支持诸如“> =”之类的运算符,则可以通过扩展规则评估程序来实现。有更好的方法吗?

"rule": {
            "type": "CompositeRule",
            "allOf": [ #In future, we can also support "anyOf" if required
              {
                "type": "SimpleRule",
                "attribute": "customerType",
                "operator": "==", #In future, we can also support other operators like ">=" or "<=" etc.
                "value": "PRIMARY" #Value can be a number, string or boolean
              },
              {
                "type": "SimpleRule",
                "attribute": "locale",
                "operator": "==",
                "value": "en-US"
              }
            ]
        }
java rules rule-engine
1个回答
-1
投票

jamesso提出了一个不错的JsonLogic实现,用于建立JSON解析器规则并在没有Nashorn JS Engine的Java中执行它们。您可以在GitHub https://github.com/jamsesso/json-logic-java上签出代码库。

© www.soinside.com 2019 - 2024. All rights reserved.