Skip to content

JsonPath组件使用说明

组件说明

用于解析结构化 JSON 格式的字符串字段,通过 JsonPath 表达式提取 JSON 中的特定字段或嵌套内容,将非结构化 / 半结构化的 JSON 数据转换为可直接分析的结构化字段,是处理日志、埋点、接口返回数据的关键组件。

在数据同步场景中,经常会遇到这样的数据源:

  • 日志字段 log_json 存储完整的 JSON 字符串:{"user":{"id":1001,"name":"zhangsan"},"action":"login","time":"2025-01-01"}
  • 埋点数据字段 event_data 包含嵌套 JSON:{"page":{"id":"home","title":"首页"},"click":{"btn":"submit","count":1}}
  • 接口同步数据的 response 字段是 JSON 格式的返回结果

这些 JSON 字符串字段无法直接用于筛选、分析,而 JsonPath 组件可以通过表达式精准提取 JSON 中的任意层级内容,并转换为独立的结构化字段。

典型使用场景

1、提取 JSON 字段到结构化列

从 JSON 字符串字段中提取指定的键值对,生成独立的业务字段,便于下游分析。

  • 提取单层 JSON 字段:从 log_json 字段中提取 action 和 time,生成 user_action 和 action_time 字段;
  • 提取嵌套 JSON 字段:从 log_json 的 user 子对象中提取 id 和 name,生成 user_id 和 user_name 字段。

2、扩展场景 1:提取 JSON 数组中的元素

当 JSON 中包含数组时,通过 JsonPath 表达式提取数组的指定元素或遍历数组生成多条数据。

  • JSON 字段 order_items 内容为 {"items":[{"id":1,"name":"phone"},{"id":2,"name":"case"}]},提取数组第一个元素的 name 生成 first_item 字段。

3、清洗 JSON 格式的脏数据

针对 JSON 字段格式不规范(如缺失字段、格式错误)的场景,通过 default_value 配置默认值,避免解析失败导致数据丢失。

  • 部分 log_json 字段缺失 user.name,配置默认值 anonymous,确保 user_name 字段不会为空。

4、配合其他组件做深度数据处理

JsonPath 解析后的结构化字段,可直接用于 Filter 筛选、Replace 清洗、DefineSinkType 分流等操作。

  • 解析日志 JSON 提取 user_id 和 action 后,筛选出 action = "purchase" 的购买行为数据,分流到订单分析表。

配置项说明

配置名称数据类型是否必填默认值描述
节点名称StringJsonPath当前创建的节点名称,由用户自定义且不可为空。命名可包含字母、数字、下划线。确保唯一性。
节点编码String自动生成当前创建的节点编码,以此标识此组件,由用户自定义且不可为空。命名可包含字母、数字、下划线。确保唯一性。
表匹配方式List正则匹配两种匹配方式:正则匹配、精确匹配。
正则匹配:需要输入正则表达式。
精确匹配:需要选择精确匹配的库.表。
两种匹配方式可以同时选择。
源表字段String-从下拉选项中选择上游字段。
目标表字段String-通过jsonPath解析后的字段
字段类型String-目标字段类型
JsonPathString-Jsonpath
JsonPath提取器---输入Json数据,点击解析Path,则会自动生成JosnPath

FAQ