artnum/structured-json-query

将特定的JSON结构转换为SQL查询或LDAP过滤器

v0.0.5 2024-04-08 13:41 UTC

This package is auto-updated.

Last update: 2024-09-08 14:42:41 UTC


README

将JSON对象转换为SQL WHERE子句或LDAP过滤器。

JSON查询对象

AND, OR

可以使用键#and和#or进行AND和OR字段嵌套。这些字段必须以对象作为值。嵌套深度没有限制。

默认运算符和类型

如果没有指定类型和运算符,则默认为相等运算符和字符串类型

{
    "#and": {
        "name": "John Doe",
        "city": "New York"
    }
}

结果

  • SQL -> name = "John Doe" AND city = "New York"
  • LDAP -> (&(name=John Doe)(city=New York))

指定特定类型和运算符

您可以指定类型和/或运算符

{
    "#and": {
        "name": {"operator": "~", "type": "str", "value": "Jo*"},
        "age": {"operator": ">=", "type": "int", "value": 21}
    }
}

结果

  • SQL -> name LIKE "Jo%" AND age >= 21
  • LDAP -> (&(name=Jo*)(age>=21))

嵌套示例

{
    "or": {
        "name": {"operator": "~", "value": "J*"},
        "#and": {
            "age": {"operator": "<", "type": "int", "value": 65},
            "age": {"operator": ">", "type": "int", "value": 18}
        }
    }
}

结果

  • SQL -> (name LIKE "J*" OR (age < 65 AND age > 18))
  • LDAP -> (|(name=J*)(|(age<65)(age>18)))