使用json数据构建选择查询

时间:2015-12-12 08:37:39

标签: javascript c# json

您好我想用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

任何人都请告诉我

1 个答案:

答案 0 :(得分:1)

首先,您需要反序列化该数据。有一个很棒的图书馆,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给出一个例子,因为给定的类没有这个属性。