You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用C#验证JSON/C#对象是否符合SQL过滤条件?

问题解答

可用的C#库推荐

  • System.Linq.Dynamic.Core:支持将类SQL条件表达式转换为LINQ表达式,可直接对C#对象做验证。只需先把JSON反序列化为C#对象(强类型或动态类型均可),再用DynamicExpressionParser.ParseLambda方法解析条件表达式,执行后即可得到是否匹配的结果。
  • FastExpressionCompiler:可配合LINQ动态库使用,提升表达式编译性能,适合高频次验证的场景。

无库依赖的最优实现方案

如果不想引入第三方库,可按以下步骤实现:

  1. 解析条件表达式
    • 处理表达式语法,拆分出逻辑运算符(AND/OR)、比较运算符(=、!=、>、<等)、字段路径和目标值。可以用正则表达式匹配元素,或手写递归下降解析器处理括号嵌套的逻辑结构。比如先拆分示例中的(A AND B) OR C结构,再分别解析A、B、C的具体规则。
  2. 提取字段值
    • 针对JSON:用Newtonsoft.Json或System.Text.Json的JObject,按字段路径提取值,比如JObject.Parse(json)["profile"]["country"].ToString()。
    • 针对C#对象:通过反射或表达式树,根据profile.country这类路径递归获取属性值。
  3. 执行条件判断
    • 根据解析出的比较运算符,对提取的字段值和目标值做类型转换后比较,再结合AND/OR逻辑运算符组合最终结果。注意处理字符串、数值等不同类型的比较逻辑,以及空值场景。

内容的提问来源于stack exchange,提问作者Yaniv Levy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 10:05:35