6个版本 (3个重大更新)
新 0.41.0 | 2024年8月15日 |
---|---|
0.40.0 | 2024年7月29日 |
0.2.0 | 2024年6月12日 |
0.1.3 | 2024年5月14日 |
#28 在 数据库实现 中
每月下载 1,474 次
用于 2 crates
52KB
1K SLoC
datafusion-functions-json
注意: 这不是Apache软件基金会官方发布版本,请参阅 datafusion-contrib/datafusion-functions-json#5.
此crate提供了一组用于在DataFusion中查询JSON字符串的函数。这些函数作为标量函数实现,可以在SQL查询中使用。
要使用这些函数,只需调用
datafusion_functions_json::register_all(&mut ctx)?;
在您的 SessionContext
中注册以下JSON函数。
完成
-
json_contains(json: str, *keys: str | int) -> bool
- 如果JSON字符串包含特定键则为true(用于?
运算符) -
json_get(json: str, *keys: str | int) -> JsonUnion
- 通过“路径”从JSON字符串中获取值 -
json_get_str(json: str, *keys: str | int) -> str
- 通过“路径”从JSON字符串中获取字符串值 -
json_get_int(json: str, *keys: str | int) -> int
- 通过“路径”从JSON字符串获取整数值 -
json_get_float(json: str, *keys: str | int) -> float
- 通过“路径”从JSON字符串获取浮点值 -
json_get_bool(json: str, *keys: str | int) -> bool
- 通过“路径”从JSON字符串获取布尔值 -
json_get_json(json: str, *keys: str | int) -> str
- 通过“路径”从JSON字符串获取嵌套的原始JSON字符串 -
json_as_text(json: str, *keys: str | int) -> str
- 通过“路径”从JSON字符串获取任何值,以字符串形式表示(用于->>
运算符) -
json_length(json: str, *keys: str | int) -> int
- 获取JSON字符串或数组的长度
使用json_get
的转换表达式将被重写为适当的方法,例如。
select * from foo where json_get(attributes, 'bar')::string='ham'
将被重写为
select * from foo where json_get_str(attributes, 'bar')='ham'
待办事项(也许,如果它们实际上有用的话)
-
json_keys(json: str, *keys: str | int) -> list[str]
- 获取JSON字符串的键 -
json_is_obj(json: str, *keys: str | int) -> bool
- 如果JSON是对象则返回true -
json_is_array(json: str, *keys: str | int) -> bool
- 如果JSON是数组则为true -
json_valid(json: str) -> bool
- 如果JSON有效则为true
依赖项
~26–41MB
~682K SLoC