You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Impala中JSON键包含点号时如何正确使用get_json_object()函数

Impala读取key含点号的JSON字段解决方案

出现返回NULL的原因确实是JSON key中包含的点号被get_json_object函数默认识别为JSON层级分隔符,反斜杠转义不符合该函数的JSONPath语法规则,因此无法生效。

可行解决方案

方案1:标准路径引号包裹(推荐,适配Impala 2.0+版本)

将带点号的key用双引号完整包裹后写入JSONPath即可,正确写法如下:

select get_json_object(properties, '$."prop1.enabled"') from mytable

执行后针对示例数据会返回两行true的结果,符合预期。

方案2:使用json_tuple函数(适合多字段提取)

如果需要同时提取多个带点号的JSON字段,可使用json_tuple函数,无需额外处理点号,语法更简洁:

select 
  json_tuple(properties, 'prop1.enabled', 'prop2.enabled') 
  as (prop1_enabled, prop2_enabled) 
from mytable

方案3:旧版本兜底兼容方案

如果使用的Impala版本极低不支持上述引号写法,可以先替换JSON字符串中的点号key为无点号的名称后再解析:

select 
  get_json_object(
    replace(properties, 'prop1.enabled', 'prop1_enabled'), 
    '$.prop1_enabled'
  ) 
from mytable

内容的提问来源于stack exchange,提问作者Dev_FizzBuzz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 12:18:03