【发布时间】:2020-07-20 01:47:54
【问题描述】:
我有一个需要动态转换为另一个 json 的 json。我想将输入json的属性映射到目标json的属性,同时映射我也想应用规则。下面是示例伪代码
if (input.State == "TX")
output.TaxRate = 12.00
else
output.TaxRate = input.Rate..
这些规则和目标 json 结构经常变化。所以我一直在寻找可以动态应用规则或映射到不同目标 json 的模板语言或规则引擎。
我查看了使用基于 JSON 的模板的 Microsoft Rules Engine。但与大多数其他开源规则引擎一样,当条件为真时,它不会执行操作/方法。它只计算 linq 表达式并返回布尔值。有没有人尝试扩展这个规则引擎来动态执行动作/方法?
我愿意接受任何其他建议和指南。我更喜欢模板语言,所以我可以提供 UI 来动态编辑模板。
【问题讨论】:
-
执行动作是什么意思?为什么要在解析/转换数据结构时执行操作?通常,您应该转换您的对象并然后执行任何所需的操作。
-
@dx_over_dt 如果我使用 RulesEngine 那么它不会进行转换。它只会评估条件。当条件为真时,您需要执行实际将属性转换或映射到目标对象的方法
-
可能太久没用C#了。这在 Node/JS 中非常简单,而在 TypeScript 中则很简单。你不能只使用一系列链接的 Linq 查询吗?
标签: c# rule-engine templating-engine