跳至主要内容

提取对象路径节点

Extract Object Path Node Screenshot

概述

Extract Object Path 节点允许您在对象上运行 jsonpath 查询。这对于从 JSON 对象或数组中提取数据非常有用。一些使用场景包括:

  • 从API返回的JSON对象中提取数据
  • Extract JSON节点或Extract YAML节点的结果中提取属性
  • 访问数组中的单个元素
  • 复杂查询,例如 $.store.book[?(@.price < 10)] 用于执行过滤

任何有效的jsonpath-plus查询都可以使用,但要注意复杂的查询。

Extract Object path的输入必须是一个对象,或者是任意数据类型的数组。您还可以查询非对象数据类型的属性,例如字符串,比如$.length来获取字符串的长度。

输入项

标题数据类型描述默认值备注
Objectobject or any[] or stringThe object to query using the path.(required)

示例1:从对象中提取属性

  1. 创建一个对象节点并将值设置为以下内容:

    {
    "name": "John Doe",
    "age": 30
    }
  2. 创建一个提取对象路径节点,并将对象节点连接到该节点。将提取对象路径节点的Path设置为:

    $.name
  3. 运行图形。Extract Object Path 节点应输出值 John Doe

Extract Object Path Node Example 1

示例2:从对象数组中提取属性

  1. 创建一个Object Node并将值设置为以下内容:

    [
    {
    "name": "John Doe",
    "age": 30
    },
    {
    "name": "Jane Doe",
    "age": 25
    }
    ]
  2. 创建一个Extract Object Path节点并将Object节点连接到它。将Extract Object Path节点的Path设置为:

     $[*].name
  3. 运行图形。Extract Object Path节点的all_matches输出应包含值John DoeJane Doematch输出包含第一个匹配项,即John Doe

Extract Object Path Node Example 2

示例3:从对象中提取动态属性

  1. 创建一个Object Node并将值设置为以下内容:

    {
    "name": "John Doe",
    "age": 30
    }
  2. 创建一个文本节点并将值设置为age

  3. 创建另一个文本节点并将值设置为$.{{input}}。将第一个文本节点连接到第二个文本节点。

  4. 创建一个Extract Object Path节点,并为Path设置启用输入端口。将第二个Text节点连接到Extract Object Path节点的Path输入端口。将Object节点连接到Extract Object Path节点。

  5. 运行图表。请注意路径是动态构建的,并且age是从对象中提取的。

Extract Object Path Node Example 3

错误处理

如果路径无效,Extract Object Path Node 将抛出错误。如果路径有效但未找到值,match 输出将不会运行,而 all_matches 输出将运行并返回一个空数组。

常见问题解答

问:Extract Object Path Node 是否仅适用于对象?

A: 不,它也可以处理数组和其他具有属性的JavaScript值,比如字符串。例如,你可以使用$.length来获取字符串的长度。

问:我可以拆分提取对象路径节点以便对对象数组执行命令吗?

A: 建议直接使用*运算符和All Matches输出,但在某些情况下拆分节点是合适的。例如,当处理一个包含数组的对象数组时,如果您想提取所有子数组,可以选择使用$[*].someArray或者在拆分后的节点上使用$.someArray

问:我能否使用Extract Object Path Node从API返回的JSON对象中提取数据?

A: 是的,你可以使用HTTP Call Node来发起API请求,然后使用Extract Object Path Node从响应中提取数据。

另请参阅