将JSON查询过滤器转换为SQL?

时间:2020-02-27 10:33:35

标签: java sql json

我正在寻找一个java库,该库可以将json输入动态转换为SQL

例如,库可能需要以下json数据:

{
    "rules": [
        {
            "field": "firstname",
            "value": [
                "John",
                "Doe"
            ],
            "operator": "in"
        },
        {
            "rules": [
                {
                    "field": "age",
                    "value": 18,
                    "operator": "EQUALS"
                }
            ],
            "condition": "AND"
        }
    ]
}

然后应该能够将其转换为动态sql查询:

SELECT * FROM persons where firstname IN ("John", "Doe") AND age = 18;

我可以在此基础上建立任何现有框架吗?

1 个答案:

答案 0 :(得分:1)

我不确定库是否会获得预期的输出。但是您可以使用以下代码编写Java方法。

假设输入将是JSON对象。

    JSONObject jo = (JSONObject) obj; 

    // getting fieldname and operator
    String field= (String) jo.get("field"); 
    String operator= (String) jo.get("operator"); 
    //getting values
    JSONArray ja = (JSONArray) jo.get("value"); 

    // iterating values
    Iterator itr2 = ja.iterator();  

然后您可以在上面使用它来编写动态SQL查询。