使用json数据构建select查询

Build select query with json data

本文关键字:select 查询 构建 数据 json 使用      更新时间:2023-09-26

嗨,我想用json数据构建选择查询

json数据

{
  "Data": [
    {
      "Name": "Group1",
      "Fields": [
        {
          "Field": "EmployeeSCP.Salary",
          "Operator": "lt",
          "Value": "50000"
        }
      ],
      "Condition": "0"
    },
    {
      "Name": "Group2",
      "Fields": [
        {
          "Field": "EmployeeSCP.Salary",
          "Operator": "gt",
          "Value": "20000"
        }
      ],
      "Condition": "0"
    },
  ],
  "groupCondition": 0
}

我的型号

public class ValidationModelData
{
    public List<Data> Data { get;set; }
    public string groupCondition { get; set; }
}
public class FieldsData
{
    public string Field { get; set; }
    public string Operator { get; set; }
    public string Value { get; set; }
}
public class Data
{
    public string Name { get; set; }
    public List<FieldsData> Fields { get; set; }
    public string Condition { get; set; }
}

使用这个,我想构建像这样的选择查询

select * from EmployeeSCP where salary < 50000 AND salary>20000

有人请告诉我

首先需要反序列化该数据。有一个很棒的库,Json.Net

string json = ""; //your json string
var data = JsonConvert.DeserializeObject<ValidationModelData>(json);

然后,您可以使用Linq使用类似SQL的语法选择您喜欢的对象:

var result = from d in data
             where d.Name == "TestName"
             select d;

您可以使用方法语法实现相同的效果:

var result = data.Where(d => d.Name == "TestName");

PS:我不能举一个salary的例子,因为给定的类没有这个属性。