artnum / structured-json-query
将特定的JSON结构转换为SQL查询或LDAP过滤器
v0.0.5
2024-04-08 13: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)))